2009-10-14 138 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