1

我希望能够根据当前路由将类放在 a 标签上,可以这样做吗?

我目前还没有使用 ActionLinks,但如果需要,我应该能够切换到它们,如果可能的话,我想避免它只是因为必须更改所有导航。

例如,如果我有:

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

如果导航到 /About 我希望将其更改为:关于

4

3 回答 3

1

如果您不想将 HTML Helpers 切换到我们的 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>
于 2013-04-26T14:48:50.983 回答
0

当然,你可以这样做:

@Html.ActionLink(
    "linkText",
    "actionName",
    null,             // routeValues
    new { @class = // just build an expression here to return the class name }
于 2013-04-25T20:23:47.397 回答
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>
于 2013-04-26T14:31:11.277 回答