Представление «Индекс» или его мастер не найдены. - PullRequest
56 голосов
/ 16 февраля 2010
The view 'Index' or its master was not found. The following locations were searched:
~/Views/ControllerName/Index.aspx
~/Views/ControllerName/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx

Я получил эту ошибку при использовании ASP.Net mvc area. Вызывается действие контроллера области, но, похоже, он ищет представление в «базовых» видах проекта, а не в папке видов области.

Ответы [ 15 ]

0 голосов
/ 19 июля 2015

У меня возникла та же проблема, и угадайте, что .... глядя на структуру xml 'csproj, я заметил, что узел Content (внутри узла ItemGroup) выглядит как "none" ... не уверен почему, но это причина, по которой я получаю ту же ошибку, просто отредактировал ее в «Содержимое», как и другие, и она работает.

Надеюсь, что поможет

0 голосов
/ 11 февраля 2015

Эта ошибка также может появиться, если установщик MSI не смог развернуть файл.

В моем случае это произошло из-за того, что я преобразовал файлы .aspx в файлы .cshtml, и Visual Studio подумала, что это новые файлыи установите для действия сборки значение none вместо содержимого.

0 голосов
/ 25 июня 2013

У меня тоже была эта проблема; Я заметил, что пропустил включение страницы просмотра в папку, имя которой совпадает с именем контроллера.

Контроллер: adminController Вид-> адми-> view1.cshtml

(это был View-> view1.cshtml) (папки не было: Admin)

0 голосов
/ 03 ноября 2012

Если Вы можете получить эту ошибку даже со всеми правильными MapRoutes в своей регистрации области, и все другие основные конфигурации в порядке.

Это ситуация:

Я использовал приведенный ниже код из файла Jquery, чтобы отправить обратно данные и затем загрузить представление из метода действия контроллера.

$.post("/Customers/ReturnRetailOnlySales", {petKey: '<%: Model.PetKey %>'}); 

Выше jQuery-кода I не упомянул функцию обратного вызова .Произошло то, что произошло после завершения сценария обратной отправки по методу действия, без перенаправления на ожидаемый вид, он вернулся на сторону Jquery и выдал ошибку вида не найден, как указано выше.

Затем Я дал решениекак показано ниже , и он работает без каких-либо проблем.

 $.post("/Customers/ReturnRetailOnlySales", {petKey: '<%: Model.PetKey %>'},
      function (data) {
 var url = Sys.Url.route('PetDetail', { action: "ReturnRetailOnlySalesItems", controller: "Customers",petKey: '<%: Model.PetKey %>'});
 window.location = url;});   

Примечание: Я отправил свой запрос в функции обратного вызова success для моего метода действия ожидаемых представлений. Затем механизм просмотра нашелфайл просмотра соответствующей области и загрузить правильно.

0 голосов
/ 16 ноября 2011

Вы можете получить эту ошибку даже со всеми правильными MapRoutes в вашей области регистрации. Попробуйте добавить эту строку в действие вашего контроллера:

If Not ControllerContext.RouteData.DataTokens.ContainsKey("area") Then
    ControllerContext.RouteData.DataTokens.Add("area", "MyAreaName")
End If
...