如何根据所选控制器将class="active"放入其中?<li>
<li ><a href="@Url.Action("index", "Home")">Home</a></li>
<li ><a href="@Url.Action("index", "Car")">Cars</a></li>
祝福
如何根据所选控制器将class="active"放入其中?<li>
<li ><a href="@Url.Action("index", "Home")">Home</a></li>
<li ><a href="@Url.Action("index", "Car")">Cars</a></li>
祝福
我通常会创建一个操作链接 html 帮助程序来完成此任务。请注意,我将链接本身标记为“已选择”而不是列表项。
public static class ActionLinkHelpers
{
public static MvcHtmlString SelectedActionLink(this HtmlHelper helper, string linkText, string actionName, string controllerName)
{
var controller = (string) helper.ViewContext.RouteData.Values["controller"];
if (string.Compare(controller, controllerName, StringComparison.InvariantCultureIgnoreCase) == 0)
{
return helper.ActionLink(linkText, actionName, controllerName, null, new { Class = "selected" });
}
return helper.ActionLink(linkText, actionName, controllerName);
}
}
在项目中设置操作链接帮助程序后,您的列表将如下所示:
<li>@Html.SelectedActionLink("Home", "index", "Home")</li>
<li>@Html.SelectedActionLink("Cars", "index", "Car")</li>
编辑:
为了使用自定义助手,MVC 必须了解它。例如,将一个新文件夹添加到您的项目“HtmlHelpers”并将此类放在其中。从那里你需要添加一行到/Views/Web.config
:
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="YourNameSpace.HtmlHelpers"/>
</namespaces>
</pages>