Невозможно запустить cshtml, настроенный в области

#asp.net-mvc-3

#asp.net-mvc-3

Вопрос:

У меня есть область, определенная в проекте MVC с именем Account, и в представлениях в этой области у меня есть Logon.cshtml. В web.config я получил следующее

  <authentication mode="Forms">
    <forms loginUrl="~/Areas/Account/LogOn" timeout="600" />
  </authentication>
  

Я использую атрибут авторизации на своих контроллерах, но когда я запускаю проект, получаю следующую ошибку

Ошибка сервера в приложении ‘/’.
Ресурс не может быть найден.
Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, его имя было изменено или временно недоступен. Пожалуйста, просмотрите следующий URL-адрес и убедитесь, что он написан правильно.
Запрошенный URL: /Areas/Account/LogOn

Есть идеи, что я делаю не так?

Комментарии:

1. Имя вашей области называется «Области»?

2. Когда вы добавляете область в MVS, по умолчанию добавляется папка с именем «Areas», и все добавляемые вами области попадают в эту папку «Areas». Созданная мной область называется «Учетная запись». Таким образом, физически все файлы находятся в разделе «Области Учетная запись» .

3. Область называется «Учетная запись»? Это странно, потому что обычно уже есть контроллер с именем AccountController . И LogOn звучит как действие , а не контроллер .

Ответ №1:

Хотя файлы хранятся в папке с именем Area , это не означает, что маршрутизация к этому файлу /areas/account/logon .

Просмотрите AccountAreaRegistration.cs в папке учетной записи. AreaName Определенный в этом файле (скорее всего Account ) является начальной частью маршрута к области. Кроме того, context.MapRoute линия будет иметь маршрут по умолчанию для вашей области.

По всей вероятности, особенно если вы не редактировали файл регистрации области, правильный путь для ввода в web.config ~/account/logon .