我有一個由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