Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';无法访问对象内部的ViewBag对象_C#_Asp.net Mvc - Fatal编程技术网

C# Can';无法访问对象内部的ViewBag对象

C# Can';无法访问对象内部的ViewBag对象,c#,asp.net-mvc,C#,Asp.net Mvc,我必须从ViewBag循环,并需要访问其子类别列表下的MainCategory。您可以从控制器获得想法。但我在访问我的子类别项时遇到问题。该错误表示用户未受伤害。请看下面的图片以获得更清楚的想法。欢迎提出任何问题 控制器: public ActionResult Index() { using (var ctx = new db_zikanalyticsEntities()) { va

我必须从ViewBag循环,并需要访问其子类别列表下的MainCategory。您可以从控制器获得想法。但我在访问我的子类别项时遇到问题。该错误表示用户未受伤害。请看下面的图片以获得更清楚的想法。欢迎提出任何问题

控制器:

public ActionResult Index()
        {
            using (var ctx = new db_zikanalyticsEntities())
                {
                    var vmCats = new List<CategriesViewModel>();

                    var l1cats = ctx.Level1Cats.ToList();
                    var l2cats = ctx.Level2Cats.ToList();
                    foreach (var l1 in l1cats)
                    {
                        var catObj = new CategriesViewModel { Level1CatsName = l1.Name };
                        foreach (var l2 in l2cats)
                        {
                            if (l1.Level1CatId == l2.Level1CatId)
                            {
                                catObj.Level2CatsList.Add(new Level2Cats
                                {
                                    Level2CatId = l2.Name,
                                    Name = l2.Name,
                                    Level1CatId = l2.Level1CatId,
                                    Updated = l2.Updated
                                });
                            }
                        }
                        vmCats.Add(catObj);
                    }
                    ViewBag.MainCategory = vmCats;


                return View();
        }


    }
public ActionResult Index()
{
使用(var ctx=new db_zikanalyticities())
{
var vmCats=新列表();
var l1cats=ctx.Level1Cats.ToList();
var l2cats=ctx.Level2Cats.ToList();
foreach(l1cats中的变量l1)
{
var catObj=newcategriesviewmodel{Level1CatsName=l1.Name};
foreach(l2类中的变量l2)
{
如果(l1.Level1CatId==l2.Level1CatId)
{
catObj.Level2CatsList.Add(新的Level2Cats
{
Level2CatId=l2.Name,
Name=l2.Name,
Level1CatId=l2.Level1CatId,
更新=l2。更新
});
}
}
vmCats.Add(catObj);
}
ViewBag.MainCategory=vmCats;
返回视图();
}
}
视图:

@foreach(ViewBag.main类别中的变量项)
{
@item.Level1CatsName
    @foreach(ViewBag.MainCategory.Level2CatsList中的变量项2) {
  • @项目2.名称
  • }
}

这似乎是问题所在:

@foreach (var item2 in ViewBag.MainCategory.Level2CatsList)
要使其成为正确的代码级别2CatsList,需要是MainCategory类的静态成员。是否所有MainCategory实例都具有相同的Level2CatsList值

你的意思很可能是:

@foreach (var item2 in item.Level2CatsList)
如果Level2Cats列出一个实例成员,则上述内容是正确的

您可能希望包含MainCategory的类def

@foreach (var item2 in item.Level2CatsList)