您必须投影ViewBag。我假设你有一个叫MenuList或类似的课程。你的代码更改为这个
@foreach (var item in ViewBag.MenuList as List)
{
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
或者,赞成视图模型的完全抛弃了烦人的ViewBag并按照预期的原始语法会工作。 也就是说:
让你的菜单项列表视图模型属性
public class MenuList
{
public string Name { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
}
public class ViewModel
{
//...
public List MenuLists { get; set; }
}
强类型视图
@model MvcApplicationForTestingStuff.Controllers.HomeController.ViewModel
,然后你的行动链接将与该语法工作
@foreach (var item in Model.MenuLists)
{
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
|}