您必须投射 ViewBag。我假设您有一个名为MenuList
或类似的课程。将您的代码更改为此
@foreach (var item in ViewBag.MenuList as List<HomeController.MenuList>)
{
<li class="ajax_link">
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
</li>
或者,完全放弃烦人的 ViewBag 以支持 viewModel,您的原始语法将按预期工作。也就是说:
使您的菜单项列表成为 viewModel 属性
public class MenuList
{
public string Name { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
}
public class ViewModel
{
//...
public List<MenuList> MenuLists { get; set; }
}
强烈键入您的视图
@model MvcApplicationForTestingStuff.Controllers.HomeController.ViewModel
然后您的操作链接将使用此语法
<ul id="menu">
@foreach (var item in Model.MenuLists)
{
<li class="ajax_link">
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
</li>
<li>|</li>
}
</ul>