ASP MVC 3自定义路由

时间:2012-11-16 16:05:52

标签: c# asp.net-mvc model-view-controller

我如何处理这样的网址:

{subdomain}.{domainname}/{areas}/{controller}/{action}

例如:user1.contoso.com/Manage/User/View

我希望它成为路线:

{area} = Manage
{controller} = User
{action} = View
{username} = user1 // View action parameter

非常感谢任何帮助: - )

1 个答案:

答案 0 :(得分:1)

通常路由在RegisterRoutes方法 Global.asax 文件中定义

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


        routes.MapRoute(
            "Export",                                                            // Route name
            "Export/{action}/{table}",                                       // URL with parameters
            new { controller = "Export", action = "AsExcel", table = "" }  // Parameter defaults
        );

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );
    }

使用上面的定义,您可以为 ExportController 使用单独的路线,以便默认操作为 AsExcel

如果您已经描述了路线,我不确定 区域 是否属于MVC模式。

仍然是值得的,你可以从这个线程中获益 ASP.Net MVC with complex routes - how to keep it "sane"?