asp.net mvc 3 зоны и настройка маршрутизации URL - PullRequest
4 голосов
/ 19 сентября 2011

У меня проблема с созданием ulr-маршрутизации для приложения asp.net mvc3.

Мой проект имеет такую ​​структуру:

  • Области
    • EmployeeReport
      • Контроллеры
        • Отчет
      • Просмотры
        • Отчет
          • Список
          • ....
  • Контроллеры
    • Вход
  • Viwes
    • Логин
      • ...

EmployeeReportAreaRegistration.cs: </p> <pre><code>public class EmployeeReportAreaRegistration : AreaRegistration { public override string AreaName { get { return "EmployeeReport"; } } public override void RegisterArea(AreaRegistrationContext context) { var routes = context.Routes; routes.MapRoute(null, "vykazy/vykazy-zamestnance", new { Area = "EmployeeReport", controller = "Report", action = "List" }); } }

Global.asax:

</p> <pre><code> routes.MapRoute(null, "prihlasit", new { controller = "Login", action = "Login" }); routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Default", action = "Welcome", id = UrlParameter.Optional });

When i try load "http://localhost/app_name/vykazy/vykazy-zamestnance
i get this exception :

The view 'List' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Report/List.aspx
~/Views/Report/List.ascx
~/Views/Shared/List.aspx
~/Views/Shared/List.ascx
~/Views/Report/List.cshtml
~/Views/Report/List.vbhtml
~/Views/Shared/List.cshtml
~/Views/Shared/List.vbhtml

Ну, где я ошибаюсь?

Спасибо

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

исправленный ответ:

Добавление в Context.Routes напрямую означает, что оно теряет любую информацию об областях.

Либо используйте AreaRegistration.MapRoute (которое переопределяется для добавления в информацию о зоне).

context.MapRoute(...);

Или укажите область в параметре DataTokens (а не в параметре по умолчанию, как здесь)

context.Routes.MapRoute("", "url", new {...}, null, new {area = this.AreaName});
0 голосов
/ 19 сентября 2011

Структура вашей папки для вашего региона должна выглядеть следующим образом:

  • Области
    • EmployeeReport
      • Контроллеры
      • Просмотры
...