簡體   English   中英

MVC 3區域注冊302錯誤

[英]MVC 3 Area Registration 302 Error

我有2個區域,名稱分別為“ Admin”和“ Services”。 我的項目結構如下圖1所示

我想將所有根URL重定向到Admin區域。 我更改了我的區域注冊文件以解決此問題,如下代碼塊所示。

//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頁面。

我希望我的解釋是不穩定的。

先感謝您。

項目結構

如果將以下參數添加到MapRoute,它將得到修復。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM