如果我在global.asax
文件而不是区域的AdminAreaRegistration.cs
文件中注册到某个区域(比如说它叫做Admin)的路由,那么我有什么理由不能删除{{ 1}}文件?框架中是否还有其他代码可能会在某个阶段调用它,如果它丢失可能会抛出异常?
正如评论中所述,以下是在global.asax中注册区域的代码
AdminAreaRegistration.cs
关键在于使用DataTokens集合,正如Phillip Haydon在this excellent post中所强调的那样。您可以根据需要添加任意数量,但请确保将根网站区域放在明确命名的区域之后,以便routes.MapRoute(
"AdminAreaRoute",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Payntbrush.Presentation.Demo.MVC3.Areas.Admin.Controllers" }
).DataTokens.Add("Area", "Admin");
routes.MapRoute(
"SiteAreaRoute",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { controller = "/|Home|Account" }, // Constraint's on the URL (second param above) {controller} segment
new string[] { "Payntbrush.Presentation.Demo.MVC3.Areas.Site.Controllers" }
).DataTokens.Add("Area", "Site");
在其他Map Routes之前不会捕获所有请求。
答案 0 :(得分:0)
你能发布用于在global.asax中注册你的区域的代码吗?
我问的原因是,我不认为在没有xxxAreaRegistration.cs类在某处实现的情况下,在 正确 的情况下使某个区域正常工作是不可能的。如果在另一个项目中。
看起来它可能没有它,但实际上我认为你可能只是告诉.net你的路线指向一个子目录。
我希望你在某个时候得到错误。
看看msdn AreaRegistration Class documentation它说
提供了一种在ASP.NET MVC应用程序中注册一个或多个区域的方法。
虽然它没有说它是唯一的方式,但我认为可能就是这种情况。
答案 1 :(得分:0)
我删除了这些文件,到目前为止没有任何问题。在遇到任何问题之前,我会假设它没问题。