Могу ли я удалить xxxxxxxAreaRegistration.cs? - PullRequest
1 голос
/ 13 февраля 2012

Если я регистрирую маршрут к области (скажем, он называется Admin) в файле global.asax, а не в файле AdminAreaRegistration.cs, есть ли причина, по которой я не могу удалить файл AdminAreaRegistration.cs?Есть ли какой-либо другой код в структуре, который может вызвать его на каком-то этапе, который может вызвать исключение, если оно отсутствует?

Как указано в комментариях, вот код для регистрации области в глобальном.asax

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

Ключ к использованию коллекции DataTokens, как подчеркивается в этом превосходном сообщении Филиппа Хейдона.Вы можете добавить столько, сколько захотите, но убедитесь, что вы ставите область корневого сайта после явно названных областей, чтобы {controller}/{action}/{id} не перехватывал все запросы раньше, чем другие маршруты маршрута.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2012

Я удалил эти файлы и у меня до сих пор не было проблем. Я собираюсь предположить, что это нормально, пока я не столкнусь с какими-либо проблемами.

0 голосов
/ 16 февраля 2012

Не могли бы вы опубликовать код, который вы используете для регистрации своей области в global.asax?

Причина, по которой я спрашиваю, заключается в том, что я не думаю, что технически возможно заставить работать зону правильно без внедренного где-то класса xxxAreaRegistration.cs (даже если в другом проекте.

Может показаться, что он работает без него, но на самом деле я думаю, что вы могли быпросто сообщая .net, что ваш маршрут указывает на подкаталог.

Я ожидаю, что в какой-то момент вы получите ошибку.

Посмотрите на msdn Документация класса AreaRegistration он говорит

Предоставляет способ регистрации одной или нескольких областей в приложении ASP.NET MVC.

, хотя он не говорит, что это единственный способЯ думаю, что это может быть так.

...