我的mvc3应用有以下网址:http://mysite.com/controller/details?id=56
我想让它像搜索引擎一样友好
http://mysite.com/controller/title-of-the-entity-56
我怎样才能实现它?
答案 0 :(得分:1)
您需要设置一条新路线,但我强烈建议您重新考虑自己解析实体的ID。我的意思是:
使用此URL,id可以作为数字数据类型(例如int)传递给操作:http://mysite.com/controller/details?id=56
使用此网址,ID只能作为字符串的一部分传递:http://mysite.com/controller/title-of-the-entity-56
..这意味着你必须解析字符串,提取数字并转换它。
最好瞄准这种格式:http://mysite.com/controller/details/id/title-of-entity,有点像StackOverflow的做法。
尝试在Global.asax.cs中添加此路由,高于默认路由:
routes.MapRoute(
"DetailsRoute",
"details/{id}/{entityTitle}",
new { controller = "details", action = "Index", id = UrlParameter.Optional }
);
然后您可以将其作为详细信息控制器中的索引操作:
public ActionResult Index(int id, string entityTitle) {
}
答案 1 :(得分:0)
感谢Simon Whitehead,这正是我所寻找的。
以下帖子详细介绍了
http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx