沒有看到你的控制器很難確定爲什麼這不起作用,可能是ViewBag.MenuModel沒有設置,或者它不是正確的類型。
在你當前的代碼:
@model IEnumerable<Hub.Models.MenuModel> @*THIS LINE CREATES A STRONGLY-TYPED VIEW*@
<ul>
@foreach (var item in ViewBag.MenuModel) {
<li>@Html.ActionLink(item.View, item.Controller, item.MenuName)</li>
}
</ul>
那一線的強類型的MenuModel的看法。
但是,您正在使用ViewBag將模型傳遞給視圖。在你的控制器,其中模型是要傳遞到視圖的MenuModel實例
return View(model)
:
您可以通過發送模型視圖。
在視圖則可以:
@model IEnumerable<Hub.Models.MenuModel>
<ul>
@foreach (var item in Model) {
<li>@Html.ActionLink(item.View, item.Controller, item.MenuName)</li>
}
</ul>
編輯:原來的誤差全髖關節置換生成到ActionLink的是由於需要類型變量()函數。所以簡單的強制轉換爲字符串就可以了,如下:
@model IEnumerable<Hub.Models.MenuModel>
<ul>
@foreach (var item in Model) {
<li>@Html.ActionLink((string)item.View, (string)item.Controller, (string)item.MenuName)</li>
}
</ul>
該標記是局部視圖。所以我沒有與之相關的控制器。但是,您提供的第一個示例仍然無效。我仍然迷失。 – duckmike
你有沒有添加斷點?所以你可以看到你傳遞給部分視圖的東西嗎?值是否設置? – JanR
因爲VS不喜歡它,所以在添加了局部視圖的頁面上出現錯誤。這是錯誤:System.Web.Mvc.HtmlHelper>'沒有名爲'ActionLink'的適用方法,但似乎具有通過該名稱的擴展方法。擴展方法不能動態分派。考慮轉換動態參數或調用擴展方法而不使用擴展方法語法。 –
duckmike