Asp.net mvc MVC通过从控制器到视图的列表传递模型
我在将模型从控制器传递到视图时遇到一些问题。 模型是这样的:Asp.net mvc MVC通过从控制器到视图的列表传递模型,asp.net-mvc,razor,Asp.net Mvc,Razor,我在将模型从控制器传递到视图时遇到一些问题。 模型是这样的: public class ClassA { public ClassA() { this.List1 = new List<ClassB>(); } public int Value { get; set; } public List<ClassB> List1 { get; set; } } 在控制器中,我有 using CQC.Models; usi
public class ClassA
{
public ClassA()
{
this.List1 = new List<ClassB>();
}
public int Value { get; set; }
public List<ClassB> List1 { get; set; }
}
在控制器中,我有
using CQC.Models;
using CQC.ViewModels;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity.Infrastructure;
using System.IO;
using System.Linq;
using System.Web.Mvc;
namespace CQC.Controllers
{
public class SampleController : Controller
{
public ActionResult Xyz()
{
ClassA reg = new ClassA();
reg.Value = 1;
reg.List1.Add(new ClassB() { something = "aaa" });
return View(reg);
}
}
}
在返回视图(reg)
之前调试并暂停,我确认reg
包含我想要的内容。
因此,在视图中(并使用@model CQC.ViewModels.ClassA
),我可以看到model.Value
,但是列表model.List1
是空的。
拜托,我错过了什么?
观点是这样的:
@model CQC.ViewModels.ClassA
@{ ViewBag.Title = "abc"; }
<fieldset>
<legend>Detail</legend>
<div class="row">
<div class="label">@Html.LabelFor(model => model.Value)</div>
<div class="output">@Html.DisplayFor(model => model.Value)</div>
</div>
@if (Model.List1.Count > 0)
{
<div class="rowAutoHeight">
<div class="label">@Html.Label("List1")</div>
<table class="stripe hover" id="in_tbl1">
<thead>
<tr>
<th>Programa</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.List1)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.Something)</td>
</tr>
}
</tbody>
</table>
</div>
}
</fieldset>
@model CQC.ViewModels.ClassA
@{ViewBag.Title=“abc”;}
细节
@LabelFor(model=>model.Value)
@DisplayFor(model=>model.Value)
@如果(Model.List1.Count>0)
{
@Html.Label(“列表1”)
计划
@foreach(Model.List1中的var项)
{
@DisplayFor(modeleItem=>item.Something)
}
}
将ClassA模型类的定义更改为:
public class ClassA
{
public ClassA()
{
this.List1 = new List<ClassB>();
}
public int Value { get; set; }
public List<ClassB> List1 { get; set; }
}
哦,不,我在这里写这个类时犯了一个错误,当然是public ClassA()而不是public List1()。我将编辑这个问题。对不起,很容易做到。看看它现在能不能工作,因为它在我的机器上工作了。奇怪。。。不是我的。与此同时,我在这里发现了一个类似的问题:我认为这是同一个问题。对于投反对票的用户:很抱歉,当你面对这个问题时,没有像你这样聪明?在从控制器返回到视图或从视图发布到控制器的过程中?嗨,Sunil,我在控制器到视图之间遇到了问题,但我也发现在同一控制器中从2 ActionResult传递类时出现了同样的问题。我用TempData解决了这个问题,但我相信一定有更好的方法。你能发布你的视图吗。Model.List1.Count始终为0
public class ClassA
{
public ClassA()
{
this.List1 = new List<ClassB>();
}
public int Value { get; set; }
public List<ClassB> List1 { get; set; }
}
<ul>
@foreach (var item in Model.List1)
{
<li>@item.something</li>
}
</ul>