asp.net mvc 3 зоны и настройка маршрутизации URL

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

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

  • районы
    • EmployeeReport
      • Контроллеры
        • отчет
      • Просмотры
        • отчет
          • Список
          • ....
  • Контроллеры
    • Авторизоваться
  • Viwes
    • Авторизоваться
      • ...

EmployeeReportAreaRegistration.cs:

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:

        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 ответа

Решение

Пересмотренный ответ:

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

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

context.MapRoute(...);

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

context.Routes.MapRoute("", "url", new {...}, null, new {area = this.AreaName});

Структура вашей папки для вашего региона должна выглядеть так:

  • районы
    • EmployeeReport
      • Контроллеры
      • Просмотры
Другие вопросы по тегам