我有一些项目管理系统。如果我想用id=123
打开项目,我使用地址重定向到控制器操作:
http://myhost:67845/Projects/id=123
如何使用用户友好的链接执行相同的操作,如:
http://myhost:67845/Projects/John-can-develop-asp-net-site-for-you
答案 0 :(得分:1)
您可以更新默认路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{title}",
new {
controller = "Home",
action = "Index",
title = UrlParameter.Optional
}
);
}
然后有一个控制器动作,它将标题作为参数
public ActionResult Index(string title)
{
...
}
答案 1 :(得分:1)
通过使用默认路由,您可以使用http://myhost:67845/Projects/123
而不做任何更改,因为123将被视为ID。
但是,如果您想要这种友好名称,则必须在控制器中进行更改。
在第二种情况下,在您的Projects控制器中(对于默认路由),这将由名为Index的方法处理。此方法应具有属性string id
。
然后在你的方法中,你需要一种在John-can-develop-asp-net-site-for-you
和123之间进行转换的方法。这可以是John-can-develop-asp-net-site-for-you是项目123的名称,或者您必须将友好名称存储在数据库中以进行转换。