2013-04-25 45 views
1

我希望能夠在依賴於當前路由的標籤上放置一個類,可以這樣做嗎?ASP.Net MVC指定當前頁面類

我目前還沒有使用ActionLinks,但應該可以切換到他們,如果可能的話,如果可能我想避免它只是爲了不得不改變所有的導航。

例如,如果我有:

<a href="/">Home</a> 
<a href="/About">About</a> 
etc 

如果瀏覽到/關於我想這個更改爲: 關於

+1

你真的需要把更多的精力投入到你的問題,答案將不太抽象。如果已經有了一個具體的例子(即我沒有要求**努力**),那麼答案就會更加具體。 – 2013-04-25 20:25:18

回答

1

如果你不想切換到HTML助手給我們ActionLinks你可以用你的經典環節堅持並使用Html.Raw輸出原始的HTML。

<a href="/" @Html.Raw("class=\"someclasshere\"")>Home</a> 

有條件地設置類像目前的「主動」的導航,你應該看的控制器和行動都,是這樣的:

<a href="/" @Html.Raw(ViewContext.RouteData.Values["action"].ToString().Equals("index",StringComparison.CurrentCultureIgnoreCase) && ViewContext.RouteData.Values["controller"].ToString().Equals("home",StringComparison.CurrentCultureIgnoreCase)? "class=\"active\"": "")>Home</a> 
+0

這很好,謝謝。 – user1166905 2013-05-24 18:13:48

0

當然,你可以做這樣的事情:

@Html.ActionLink(
    "linkText", 
    "actionName", 
    null,    // routeValues 
    new { @class = // just build an expression here to return the class name } 
+0

我需要知道如何添加一個依賴於當前路線的類,請參閱修正的問題。 – user1166905 2013-04-26 14:25:40

0

您要使用ViewContext.RouteData.Values

@Html.ActionLink("About", "About", 
    new { @class = ViewContext.RouteData.Values["action"] }) 

這應該添加當前操作的名稱作爲鏈接的CSS類。

,或在不HtmlHelpers:

<a href="/About" class="@(ViewContext.RouteData.Values["action"])"> 
    About 
</a>