2009-10-14 118 views
1

开创全省的链接列表,是否有一种方法,使的在控制,而不必每一个动作链接列表添加从控制器动作ASP.NET MVC

<li><%= Html.ActionLink("Link Name", "Index", "Home")%></li> 

每个项目?

回答

3

是的。

您可以返回可以呈现为定位标记的键值对的SelectList。

或者,您可以创建在一个模型,这是不是最好的地方吧,控制器,它返回到视图,您可以再itterate通过。

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> 
+0

不对列表锚=新的List ();并返回View(Anchors)进入相同的动作? 公众的ActionResult指数() { } 我得到一个错误CS1061:“对象”不包含“锚”的定义,并没有扩展方法“锚” – 2009-10-14 20:06:45

+0

myAnchorList是一类和锚是名字类型为myAnchorList的通用列表。因此,您需要将myAnchorList放置在您的代码有权访问的名称空间中。那么你将该列表传递给视图,视图也需要访问该命名空间。 – griegs 2009-10-14 20:34:52

相关问题