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>