Html ActionLink.将项目从列表分配到动作链接
本文关键字:链接 分配 列表 ActionLink 项目 Html | 更新日期: 2023-09-27 18:05:13
我试图创建一个菜单,通过创建与数据我从数据库收集的ActionLinks。我尝试了@item.name, @item.ActionName....但是行不通....我做错了什么,但找不到....请帮助。由于
<ul id="menu">
@foreach (var item in ViewBag.MenuList)
{
<li class="ajax_link">
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
</li>
<li>|</li>
}
</ul>
您必须强制转换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>