こんにちは、コントローラからパーシャルビューを呼び出すと、エラーCS1061が発生します。MvcとEFを含む別々のプロジェクトでソリューションを使用しています。
私のモデルはMenuエンティティとMenuItemエンティティ(EFから省略)です。
public partial class Menu : EntityObject
{
#region Propiedades primitivas
public global::System.Int32 Id
public global::System.String Name
#region Propiedades de navegación
[EdmRelationshipNavigationPropertyAttribute("DAL_EF_Model", "MenuMenuItem", "MenuItem")]
public EntityCollection<MenuItem> MenuItems
..。
public partial class MenuItem : EntityObject
{
#region Propiedades primitivas
public global::System.Int32 Id
public global::System.String Name
public global::System.String ActionName
public global::System.String ControllerName
public global::System.String Url
..。
コントローラは:..。
[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);
}
}
..。
そして、partialview _MenuLayout.cshtml:
@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>
コントローラから、partialviewが受信します
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?)"}