asp.net-mvc-2 – ASP.NET MVC 3 – 自定义SEO友好路由
发布时间:2020-12-16 07:04:15 所属栏目:asp.Net 来源:网络整理
导读:我已经定义了以下路线: routes.MapRoute( null,"foo/{id}/{title}",new { controller = "Boo",action = "Details" }); 当我调用这个方法时: Url.Action("Details","Boo",new { id = article.Id,title = article.Title }) 我得到以下网址: http:// localh
我已经定义了以下路线:
routes.MapRoute( null,"foo/{id}/{title}",new { controller = "Boo",action = "Details" } ); 当我调用这个方法时: Url.Action("Details","Boo",new { id = article.Id,title = article.Title }) 我得到以下网址: 我想创建一个新的路由,它将小写所有字符并替换其中一些字符. 例如 规则: Uppercase -> lowercase ' ' -> '-' '?' -> 's' etc. 任何帮助将不胜感激! 解决方法
似乎是自定义路线的完美候选者:
public class MyRoute : Route { public MyRoute(string url,object defaultValues) : base(url,new RouteValueDictionary(defaultValues),new MvcRouteHandler()) { } public override VirtualPathData GetVirtualPath(RequestContext requestContext,RouteValueDictionary values) { values = new RouteValueDictionary(values); var title = values["title"] as string; if (!string.IsNullOrEmpty(title)) { values["title"] = SEOify(title); } return base.GetVirtualPath(requestContext,values); } private string SEOify(string title) { throw new NotImplementedException(); } } 将注册如下: routes.Add( "myRoute",new MyRoute( "foo/{id}/{title}",action = "Details" } ) ); 现在你所要做的就是在我离开的SEOify功能中实现你的SEO要求.顺便说一句,你可以从StackOverflow does it的问题标题中获得一些灵感. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 从MVC控制器调用异步方法
- asp.net-mvc – 无法在mvc 4中映射特定控制器的路由
- asp.net – 多个客户端应该有一个项目副本,还是每个客户端都
- asp.net中使用自定义控件的方式实现一个分页控件的代码
- 如何在没有冲突的情况下在asp.net中生成随机唯一的16位数字
- ASP.NET开发服务器或本地主机IIS?
- 限制并发或不限制并发? (在单个ASP.NET请求中)
- 如何为ASP.NET_SessionId cookie设置HttpOnly?
- asp.net – 在测试期间如何使电子邮件到本地文件夹?
- asp.net-mvc-4 – AngularJs,DropZone.Js,MVC4 – 拖放,预览
推荐文章
站长推荐
热点阅读