asp.net-mvc – ASP.NET MVC路由上的拖尾斜杠
发布时间:2020-12-15 23:24:12 所属栏目:asp.Net 来源:网络整理
导读:在最新的MVC预览中,我使用此路由作为旧网址: routes.MapRoute("Legacy-Firefox",// Route name"Firefox-Extension/",// URL with parametersnew { controller = "Home",action = "Firefox",id = "" } // Parameter defaults); 问题是这两个URL的工作: http
在最新的MVC预览中,我使用此路由作为旧网址:
routes.MapRoute( "Legacy-Firefox",// Route name "Firefox-Extension/",// URL with parameters new { controller = "Home",action = "Firefox",id = "" } // Parameter defaults ); 问题是这两个URL的工作: 我只想要第二个工作(对于SEO).此外,当我创建一个链接到该页面,路由引擎给我一个没有尾部斜线的URL. 这是我用来生成链接的代码: <%= Html.ActionLink("Firefox Extension","Firefox","Home")%> 我相信可以通过使用HTTP处理程序来修改第一个问题,使用尾部的斜杠进行301重定向到URL.但是,我想链接到尾部斜线的URL,我希望不必用斜杠硬编码版本. 任何人都知道如何强制路线使用尾部斜线? 解决方法
如果您在RouteLink上有一个包装器,那么可以解决问题.
例如,我有一个包装方法RouteLinkEx: public static string RouteLinkEx(this HtmlHelper helper,string text,string routeName,RouteValueDictionary rvd,object htmlAttributes) { UrlHelper uh = new UrlHelper(helper.ViewContext.RequestContext,helper.RouteCollection); // Add trailing slash to the url of the link string url = uh.RouteUrl(routeName,rvd) + "/"; TagBuilder builder = new TagBuilder("a") { InnerHtml = !string.IsNullOrEmpty(text) ? HttpUtility.HtmlEncode(text) : string.Empty }; builder.MergeAttributes(new RouteValueDictionary(htmlAttributes)); builder.MergeAttribute("href",url); return builder.ToString(TagRenderMode.Normal); //--- } 如您所见,我使用参数首先生成URL.然后我在URL的末尾添加了“/”.然后我使用这些URL生成完整的链接. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 最新的ASP.Net MVC 3请求处理管道图?
- asp.net-core – 为什么.net core 2.1 SPA有3个不同的端口?
- 如何在ASP.NET MVC应用程序中组织JavaScript代码
- asp.net – 生成本地资源后缺少服务器标签
- asp.net-mvc – RequireHttps导致Amazon Elastic Load Bala
- 如何通过给定的项目值显示Motobit Multi.Dictionary中的键?
- asp.net – 我可以在一个Web项目中拥有多个web.config文件吗
- ASP.NET C#OutofMemoryException大文件上载
- asp.net-mvc – ASP.NET MVC的一个路由,两个不同的视图
- 你应该在哪里定期登录asp.net-mvc?你应该使用ELMAH吗?
推荐文章
站长推荐
热点阅读