【问题标题】:Mixing WebForms and MVC5 routing not working混合 WebForms 和 MVC5 路由不起作用
【发布时间】:2016-03-31 04:19:09
【问题描述】:

我有以下代码用于 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 语句?

【问题讨论】:

    标签: asp.net-mvc webforms routing asp.net-mvc-5 webforms-routing


    【解决方案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 }
                );
    

    【讨论】:

    • 我尝试先移动 Web 表单路由,但仍然拒绝加载 details.aspx 页面
    猜你喜欢
    • 2017-09-29
    • 2014-12-27
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 2013-11-14
    相关资源
    最近更新 更多