0

我的 mvc3 应用程序具有以下 URL:http://mysite.com/controller/details?id=56

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

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

我怎样才能实现它?

4

2 回答 2

1

您需要设置一条新路线,但我强烈建议您重新考虑自己解析实体的 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) {

}
于 2012-07-24T22:22:56.217 回答
0

感谢 Simon Whitehead,这正是我想要的。

下面的帖子详细描述

http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx

于 2012-07-25T04:37:51.770 回答