繁体   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