我有一个由EF自动生成的文件index.cshtml(代码优先)。下面的代码工作正常,在该文件中我怎么可以有一个控制器,它可以传递(返回)一些模型到_Layout.cshtml。查看
@model IEnumerable<dyescan.Models.MyMainMenuItem>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ItemText)
</td>
<td>
@Html.DisplayFor(modelItem => item.LinkAction)
</td>
<td>
@Html.DisplayFor(modelItem => item.LinkController)
</td>
</tr>
}
但是当我复制粘贴在_layout.cshtml的代码,我不能没有使用此模式。
Object reference not set to an instance of an object
我收到以上错误在这一行@foreach(var item in Model)
。以下是我在_Layout.cshtml
@model IEnumerable<dyescan.Models.MyMainMenuItem>
@foreach(var item in Model)
{
<li>@Html.ActionLink(item.ItemText,item.LinkAction,item.LinkController)</li>
}
更新
于是,我就跟着个评论这条路。我做了一个控制器Shared
(文件夹名称),并在该控制器中我做了一个动作_Layout
(视图的文件名)。现在它返回dbContex.MyMainMenuItems ..到视图
但仍无法作出_layout控制器..通过它的模型为我的菜单项
你是否在显示布局时返回任何对象? – germi
在你的控制器中,你是否返回'View(model)'? – Jonesopolis
哦,我应该尽力做到这一点..感谢您的良好指导 – Sami