匹配路线与参数

时间:2014-10-13 23:27:46

标签: asp.net-mvc-4 episerver

我是新工作的路线。

有人知道这条路线不起作用。

/ dispatch / Paris / Lixo =找不到页面

/ dispatch?region = Paris& department = Lixo //作品。

的Global.asax:

        routes.MapContentRoute(name: "customRoute",
                        url: "{region}/{department}",
                        defaults: new { 
    action = "index", 
    controller = "dispatch", 
    region = UrlParameter.Optional, 
    department = UrlParameter.Optional
}
                        //,contentRootResolver: (s) => s.StartPage
                        );

DispatchController.cs

public ActionResult Index(DispatchPage currentPage, string region, string department)

1 个答案:

答案 0 :(得分:2)

请注意,您的路线仅包含地区和部门。 URL不假设控制器在那里。另外,我假设有一个默认路由已定义。所以:

/dispatch/Paris/Lixo - 不适合任何事情。 {region}/{department}没有控制器,因此路由处理器会将dispatch分配给region,将Paris分配给departmentLuxo不适合任何东西,因此整条路线都不合适。另一方面,默认路由假定Paris是一个动作,因此它也不适合。

/dispatch?region=Paris&department=Lixo - 适合默认设置操作的默认路由。请注意,查询字符串参数在路由中不起任何作用,除非它们作为参数传递。

我认为你可能会追随的是这条路线:

url: "dispatch/{region}/{department}"

这将捕获第一个网址。