0

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

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

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

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

2 回答 2

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)
{
    ...
}
于 2011-12-19T09:20:33.003 回答
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 的名称,或者您必须存储友好的数据库中的名称以及进行转换。

于 2011-12-19T09:21:35.103 回答