MVC3 / Razor Error: представление или его мастер не были найдены или ни один механизм представления не поддерживает найденные местоположения - PullRequest
3 голосов
/ 19 января 2012

У меня есть область под названием Admin.Структура папок в Visual Studio выглядит следующим образом:

Areas
   Admin
      Controllers
      Views

У меня есть контроллер с именем AccountController, в котором у меня есть действие с именем Verify.У меня есть эта строка кода в этом действии:

return View("EmailVerificationComplete");

Но я получаю эту ошибку:

Представление 'EmailVerificationComplete' или его мастер не найден, или никакой механизм просмотра не поддерживает поискместах.Были найдены следующие местоположения: ~ / Views / Account / EmailVerificationComplete.aspx ~ / Views / Account / EmailVerificationComplete.ascx ~ / Views / Shared / EmailVerificationComplete.aspx ~ / Views / Shared / EmailVerificationComplete.ascx ~ / Views / Account / EmailVerificationComplete.cshtml ~ / Views / Account / EmailVerificationComplete.vbhtml ~ / Views / Shared / EmailVerificationComplete.cshtml ~ / Views / Shared / EmailVerificationComplete.vbhtml

Почему это так?Почему MVC не знает, как искать в папке Views относительно области администратора?

Как мне решить эту проблему?

Спасибо,

Sachin

Ответы [ 5 ]

5 голосов
/ 07 января 2013

У меня была такая же проблема. Я обнаружил, что когда вы отправляете запрос на определенное действие, даже если URL-адрес недействителен, mvc пытается сопоставить действие для вас на основе переданного URL-адреса. Если совпадение найдено, (в моем случае оно переходит к правильному метод действия контроллера), но поскольку путь, который вы указали, был неверным, он не смог найти связанное представление.

5 голосов
/ 19 января 2012

Почему MVC не знает, как искать в папке Views относительно административной области?

Потому что ваш AccountController не находится в области Admin. Вероятно, это в ~/Controllers/AdminController.cs, поэтому по соглашению ASP.NET MVC будет искать в ~/Views/Shared или ~/Views/Account соответствующие представления.

3 голосов
/ 20 августа 2014

Я пытался передать простую строку в представление.Это приводило к тому, что View () отображал неправильную перегрузку - View (string viewName), но я действительно хотел View (объектная модель).Таким образом, решение было просто привести строку к объекту.Или я мог бы использовать ViewBag и ничего не передавать View ().

1 голос
/ 12 ноября 2014

использовать возвратное представление (модель: "EmailVerificationComplete");

1 голос
/ 08 июля 2014

Я сталкивался с этой ошибкой раньше ... В моем случае, случился так, что файл .csproj был случайно исключен из слияния с веткой RELEASE и поэтому не имел отсутствующего файла, проиндексированного впроект.После того, как файл .csproj был объединен, перестроен и развернут, файл был найден.

...