如何使用用户友好的地址?

时间:2011-12-19 09:17:04

标签: asp.net-mvc-3 ip-address user-friendly

我有一些项目管理系统。如果我想用id=123打开项目,我使用地址重定向到控制器操作:

http://myhost:67845/Projects/id=123

如何使用用户友好的链接执行相同的操作,如:

http://myhost:67845/Projects/John-can-develop-asp-net-site-for-you

2 个答案:

答案 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的名称,或者您必须将友好名称存储在数据库中以进行转换。