Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Asp.net mvc 获取partialview(mvc razor实体框架)中带有导航属性的错误CS1061_Asp.net Mvc_Entity Framework_Razor_Ienumerable - Fatal编程技术网

Asp.net mvc 获取partialview(mvc razor实体框架)中带有导航属性的错误CS1061

Asp.net mvc 获取partialview(mvc razor实体框架)中带有导航属性的错误CS1061,asp.net-mvc,entity-framework,razor,ienumerable,Asp.net Mvc,Entity Framework,Razor,Ienumerable,嗨,我从控制器调用partialview时遇到错误CS1061。 我正在使用一个包含Mvc和EF的独立项目的解决方案 我的模型是一个菜单和菜单项实体(从EF中删除): 控制器是: 它很好用 完整的错误消息是: {"_MenuLayout.cshtml(21): error CS1061: 'System.Collections.Generic.IEnumerable<DAL_EF.Menu>' no contiene una definición de 'MenuItem

嗨,我从控制器调用partialview时遇到错误CS1061。 我正在使用一个包含Mvc和EF的独立项目的解决方案

我的模型是一个菜单菜单项实体(从EF中删除):

控制器是:

它很好用

完整的错误消息是:

    {"_MenuLayout.cshtml(21): error CS1061: 'System.Collections.Generic.IEnumerable<DAL_EF.Menu>' no contiene una definición de 'MenuItems' ni se encontró ningún método de extensión 'MenuItems' que acepte un primer argumento de tipo 'System.Collections.Generic.ICollection<DAL_EF.Menu>' (¿falta una directiva using o una referencia de ensamblado?)"}
{u MenuLayout.cshtml(21):错误CS1061:'System.Collections.Generic.IEnumerable'no contiene una definiticón de'MenuItems'ni se encontrolún método de extensionón'MenuItems'que acepte un primer argumento de tipo'System.Collections.Generic.ICollection'('falta una directiva using o using o una usa una referencea de en de ensamblado?)}
正如错误消息所说,IEnumerable(即您的模型)没有名为MenuItems的属性,因为它是一整组菜单,而不仅仅是一个菜单

您可能希望这样,循环浏览模型中的每个菜单,然后循环浏览每个菜单中的每个菜单项

@foreach (Menu menu in Model)
{
    @foreach(var item in menu.MenuItems)
    {
        .. do your stuff ..
    }
}

马蒂,你说得再正确不过了。。。我的困惑是因为我认为错误在于成为@model,而不在视图的逻辑范围内。非常感谢你!
    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult MenuLayout(string name)
    {
        if (db.Menus.Count<Menu>() > 0 &&
            db.MenuItems.Count<MenuItem>() > 0)
        {
            //var todos = new MenuV();
            //todos = db.Menus.ToList();
            List<Menu> otros = db.Menus.ToList();
            foreach (var opcion in db.Menus)
            {
                List<Menu> menu = db.Menus
                    .Include("MenuItems")
                    .ToList();
                    //.Single<Menu>(m => m.Name == opcion.Name);
                return PartialView("_MenuLayout", menu);
            }
            return PartialView("_MenuLayout", null);
        }
        else
        {
            return PartialView("_MenuLayout", null);
        }
    }
@model IEnumerable<DAL_EF.Menu>
<div id="accordion">
 <div><h3><a href="#"> ERP </a></h3>
   @{
    if (Model != null)
    {
        <div><ul>
        @foreach (var item in Model.MenuItems)
        {
            <li id="@item.Name">@Html.ActionLink(
            @item.Name,
            @item.ActionName,
            @item.ControllerName)</li>
        }
        </ul></div>
    }
}
 </div> 
</div>
IEnumerable<DAL_EF.Menu>
.Single<Menu>
 DAL_EF.Menu
    {"_MenuLayout.cshtml(21): error CS1061: 'System.Collections.Generic.IEnumerable<DAL_EF.Menu>' no contiene una definición de 'MenuItems' ni se encontró ningún método de extensión 'MenuItems' que acepte un primer argumento de tipo 'System.Collections.Generic.ICollection<DAL_EF.Menu>' (¿falta una directiva using o una referencia de ensamblado?)"}
@model IEnumerable<DAL_EF.Menu>
@foreach (var item in Model.MenuItems)
@foreach (Menu menu in Model)
{
    @foreach(var item in menu.MenuItems)
    {
        .. do your stuff ..
    }
}