我的 mvc3 应用程序具有以下 URL:http://mysite.com/controller/details?id=56
我想让它像搜索引擎一样友好
http://mysite.com/controller/title-of-the-entity-56
我怎样才能实现它?
我的 mvc3 应用程序具有以下 URL:http://mysite.com/controller/details?id=56
我想让它像搜索引擎一样友好
http://mysite.com/controller/title-of-the-entity-56
我怎样才能实现它?
您需要设置一条新路线,但我强烈建议您重新考虑自己解析实体的 ID。我的意思是:
使用此 URL,可以将 id 作为数字数据类型(例如 int)传递给操作:http://mysite.com/controller/details ?id=56
使用此 URL,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) {
}
感谢 Simon Whitehead,这正是我想要的。
下面的帖子详细描述
http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx