0

我有以下代码用于 Web 表单和 MVC 的路由。

当我混合使用两者时,MVC 路由似乎工作正常,但 Web 表单却不行。

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.IgnoreRoute("");

    //MVC        
    routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

    //WebForms
    routes.MapPageRoute(
        "myPage",
        "page/companyInfo/{*queryvalues}",
        "~/company/details.aspx"
        );   

我是否需要为 details.aspx 页面编写 IgnoreRoute 语句?

4

1 回答 1

1

更改路由的顺序,MVC 路由应该在底部,因为默认基本上是一个包罗万象的。MVC 从上到下处理路由,如果找到匹配项,它将停止查找并将您路由到匹配的路由。

        //WebForms
        routes.MapPageRoute(
            "myPage",
            "page/companyInfo/{*queryvalues}",
            "~/company/details.aspx"
            );

       //MVC        
        routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
于 2015-12-24T21:20:59.800 回答