在 umbraco 7 中使用多个参数进行路由

routing with multiple parameter in umbraco 7

我有一个类似 http://localhost:55617/knowledge-house/magazines/ in umbraco 7. Now I want to apply routing to the same when parameters are present in url say http://localhost:55617/knowledge-house/magazines/English/2012/ 的页面。其中 'English' & '2012' 是参数。

所以,在RouteConfig.cs中,我写了以下内容。

routes.MapRoute(
            name: "/knowledge-house/magazines/",
            url: "/umbraco/Surface/{controller}/{action}/{langid}/{year}/",
            defaults: new { controller = "Kids", action = "Magazine", langid = UrlParameter.Optional, year = UrlParameter.Optional }
        );

我有一个Kids Surface控制器,里面有如下代码。

public ActionResult Magazine(int langid = 0, string year = "")
    {
        return View("Magazine");
    }

但对于 url http://localhost:55617/knowledge-house/magazines/English/2012/ 它给出错误:HTTP 错误 404.11 - 未找到

其实我查错了。因为,url 不是很好的 url。所以我必须用 url 来测试 http://localhost:55617/knowledge-house/magazines?langid=English&year=2012 。现在路由正确。