搜索引擎友好的URL路由

时间:2012-07-24 21:12:15

标签: asp.net-mvc-3 asp.net-mvc-routing

我的mvc3应用有以下网址:http://mysite.com/controller/details?id=56

我想让它像搜索引擎一样友好

http://mysite.com/controller/title-of-the-entity-56

我怎样才能实现它?

2 个答案:

答案 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