0

我有以下代碼爲我的路由的Web窗體和MVC。混合WebForms和MVC5路由不工作

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" 
     ); 

我需要爲detail.aspx頁面編寫IgnoreRoute語句嗎?

回答

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 } 
      ); 
+0

我試過先移動web表單路由,但仍然拒絕加載details.aspx頁面 – seUser