我有一些项目管理系统。如果我想打开项目,id=123
我使用地址重定向到控制器操作:
http://myhost:67845/Projects/id=123
我如何使用用户友好的链接进行相同的操作,例如:
http://myhost:67845/Projects/John-can-develop-asp-net-site-for-you
我有一些项目管理系统。如果我想打开项目,id=123
我使用地址重定向到控制器操作:
http://myhost:67845/Projects/id=123
我如何使用用户友好的链接进行相同的操作,例如:
http://myhost:67845/Projects/John-can-develop-asp-net-site-for-you
您可以更新默认路由:
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)
{
...
}
通过使用默认路由,您可以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 的名称,或者您必须存储友好的数据库中的名称以及进行转换。