我可以删除xxxxxxxAreaRegistration.cs吗?

时间:2012-02-13 10:22:18

标签: c# asp.net asp.net-mvc-routing url-routing asp.net-mvc-areas

如果我在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之前不会捕获所有请求。

2 个答案:

答案 0 :(得分:0)

你能发布用于在global.asax中注册你的区域的代码吗?

我问的原因是,我不认为在没有xxxAreaRegistration.cs类在某处实现的情况下,在 正确 的情况下使某个区域正常工作是不可能的。如果在另一个项目中。

看起来它可能没有它,但实际上我认为你可能只是告诉.net你的路线指向一个子目录。

我希望你在某个时候得到错误。

看看msdn AreaRegistration Class documentation它说

  

提供了一种在ASP.NET MVC应用程序中注册一个或多个区域的方法。

虽然它没有说它是唯一的方式,但我认为可能就是这种情况。

答案 1 :(得分:0)

我删除了这些文件,到目前为止没有任何问题。在遇到任何问题之前,我会假设它没问题。