2010-02-12 58 views
3

。我在主頁上有各種鏈接。例如使用asp.net mvc獲取當前控制器和masterpage內的動作

/主頁/

/首頁/

/新聞/

/文檔/

,如果我選擇一個鏈接,我想一個類就可以設置。例如如果我選擇新聞鏈接,我想通過設置一個類來突出顯示它。

我如何確定什麼控制器和動作即時通訊以設置其類屬性?

回答

3

routedata將包含該信息。關鍵「控制器」將包含控制器的名稱,而「動作」鍵將包含動作的名稱。

爲了解決你想要做的事情,我通常在身體標籤上放一個id,其中包含控制器名稱和動作名稱。事情是這樣的:

<body id="<%=Html.GetBodyId()%>"> 

而且GetBodyId()方法會是這個樣子:

public static string GetBodyId(this HtmlHelper helper) { 
    return string.Format("{0}-{1}", 
     helper.ViewContext.RouteData.GetRequiredString("controller"), 
     helper.ViewContext.RouteData.GetRequiredString("action"); 
} 

然後,我把我的鏈接班在我的母版頁,可以是這個樣子:

<a href="[[link]]" class="home-index-link">Home</a> 

然後我可以創建我的CSS規則,使選定的鏈接可以有不同的外觀。這可以看起來像這樣:

.home-index-link { 
    /*css rules here*/ 
} 
#home-index .home-index-link { 
    /*css for selected link*/ 
} 
+0

當,忘了登錄之前編輯。感謝這裏的建議,儘管對於任何人來說,ViewContext是HtmlHelper(helper)的一個屬性, – DaveD 2013-02-25 20:30:35