我有一个小的MVC网站,使用
Html.ActionLink帮助器的导航栏.我想改变的一件事是,默认的ActionLink将呈现一个html链接到页面,即使这是当前的页面.
<a href="/myUrl">Some title...</a>
即使你已经在/ myUrl.这将是很好的,如果它将禁用该链接,也可能插入一个特殊的CSS类来显示当前访问的页面,像这样:
<a href="#" class="currentPageCSS">My Url</a> <a href="/someOtherUrl">Some Other Url</a>
这个问题在MVC网站的加载之前必须遇到,所以我很想知道其他人如何处理它.
解决方法
这似乎是一个很好的场景来滚动一个自定义的HTML助手.所以我们来吧吧
public static class LinkExtensions { public static MvcHtmlString MyActionLink( this HtmlHelper htmlHelper,string linkText,string action,string controller ) { var currentAction = htmlHelper.ViewContext.RouteData.GetrequiredString("action"); var currentController = htmlHelper.ViewContext.RouteData.GetrequiredString("controller"); if (action == currentAction && controller == currentController) { var anchor = new TagBuilder("a"); anchor.Attributes["href"] = "#"; anchor.AddCssClass("currentPageCSS"); anchor.SetInnerText(linkText); return MvcHtmlString.Create(anchor.ToString()); } return htmlHelper.ActionLink(linkText,action,controller); } }
并在您的观点:
<%= Html.MyActionLink("hello foo","Index","Home") %> <%= Html.MyActionLink("hello bar","About","Home") %> ...
并且取决于您的帮助者将在哪里生成正确的锚点.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。