asp.net-mvc – 自定义ActionLink帮助器,它知道你正在使用哪个页面
发布时间:2020-05-24 05:21:11 所属栏目:asp.Net 来源:互联网
导读:我有一个小的MVC网站,使用 Html.ActionLink帮助器的导航栏.我想改变的一件事是,默认的ActionLink将呈现一个html链接到页面,即使这是当前的页面. 例如,它创建一个如下所示的链接: a href=/myUrlSome title.../a 即使你已经在/ myUrl.这将是很好的,如果它将禁
|
我有一个小的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") %>
...
并且取决于您的帮助者将在哪里生成正确的锚点. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 配置IIS以返回404以进行目录浏览尝试
- asp.net – 如何防止PDF文档下载到用户PC?
- asp.net – 为什么当试图保存更改时,GridView行“null”的D
- .net – MVC – 是模型查看还是控制器查看?
- asp.net – 在telerik网格的列中使用控件
- asp.net-mvc – 未找到部分视图或视图引擎不支持搜索的位置
- ASP.NET从内存而不是从文件中流内容
- asp.net – 无法加载文件或程序集“System.Web.Mvc,Version
- asp.net – UpdatePanel异常处理
- asp.net-mvc – 如何在ASP.NET控制器中获
