我希望能够根据当前路由将类放在 a 标签上,可以这样做吗?
我目前还没有使用 ActionLinks,但如果需要,我应该能够切换到它们,如果可能的话,我想避免它只是因为必须更改所有导航。
例如,如果我有:
<a href="/">Home</a>
<a href="/About">About</a>
etc
如果导航到 /About 我希望将其更改为:关于
我希望能够根据当前路由将类放在 a 标签上,可以这样做吗?
我目前还没有使用 ActionLinks,但如果需要,我应该能够切换到它们,如果可能的话,我想避免它只是因为必须更改所有导航。
例如,如果我有:
<a href="/">Home</a>
<a href="/About">About</a>
etc
如果导航到 /About 我希望将其更改为:关于
如果您不想将 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>
当然,你可以这样做:
@Html.ActionLink(
"linkText",
"actionName",
null, // routeValues
new { @class = // just build an expression here to return the class name }
你想用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>