2015-11-04 85 views
0

我有一個名爲「Admin」和「Services」的域名。我的項目結構如下圖1MVC 3區域註冊302錯誤

我想將所有根網址重定向到管理區域。我改變了我的區域註冊文件來解決這個問題,如下面的代碼塊。

//Root 
//Old Value 
routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
//New Value 
routes.MapRoute(
       "Default", // Route name 
       "trash/{controller}/{action}/{id}", // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
       ); 

現在將根URL重定向到Admin區域我已更新AdminAreaRegistration.cs類,如下所示。

//Admin 
//Old Value 
context.MapRoute(
       "Admin_default", 
       "Admin/{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 

//New Value 
context.MapRoute(
       "Admin_default", 
       "{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 

在此更新之後,當我想瀏覽我的網站時,可以看到我的管理區域視圖。但是我在管理區域視圖上有很多AJAX調用,並且當那些ajax調用嘗試調用服務區域控制器時,它無法訪問服務控制器,我在網絡插件上進行監視以查看我的錯誤是什麼,我得到一個HTTP 302錯誤,然後將其重定向到404 Not Found頁面。

我希望我的解釋是可以理解的。

預先感謝您。

Project Structure

回答

0

如果添加下面的參數到您的圖路線將被固定。

.DataTokens.Add("area", "Admin"); 

而且

namespaces: new[] { "X.Areas.Admin.Controllers" }). 

最終輸出

routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new {area="Admin", controller = "Home", action = "Index", id = UrlParameter.Optional }, 
       namespaces: new[] { "X.Areas.Admin.Controllers" } 
       ).DataTokens.Add("area", "Admin");