是否有办法为控制器中的每个操作制作链接列表,而不必添加
<li><%= Html.ActionLink("Link Name", "Index", "Home")%></li>
每个项目?
答案 0 :(得分:3)
是的。
您可以返回可以呈现为锚标记的键值对的SelectList。
或者您可以在中创建一个模型,这不是它的最佳位置,控制器并将其返回到视图,然后您可以通过该视图。
public class myAnchorList
{
public string text {get;set;}
public string controller {get;set;}
public string action {get;set;}
}
然后在您的代码中创建一个List<myAnchorList>
。
List<myAnchorList> Anchors = new List<myAnchorList>();
在列表中填入数据并返回。
return View(Anchors).
如果您已经通过模型,则需要将此列表添加到要返回的模型中。
有意义吗?如果不发表评论,我会尝试进一步解释。
修改强>
现在让我完成图片,我有更多的时间。
在客户端,您将拥有此未经测试的代码;
<ul>
<% foreach(myAnchorList item in Model.Anchors){ %>
<li><%= Html.ActionLink(item.text, item.action, item.controller)%></li>
<% } %>
</ul>
答案 1 :(得分:2)
除了griegs answer之外,通过反射构造控制器动作列表可能会有所帮助。在这种情况下,您可能需要查看:
new ReflectedControllerDescriptor(typeof(TController)).GetCanonicalActions()
此答案归功于:Accessing the list of Controllers/Actions in an ASP.NET MVC application