Подтвердить что ты не робот

Частичный вид не найден или механизм просмотра не поддерживает найденные местоположения

У меня есть следующий код контроллера:

public MyController:Controller
{
 public ActionResult Index()
  {
     return View();
  }
 [ChildActionOnly]
 public ActionResult MyPartialViewAction()
 {
    return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView",PartialViewModel);
 } 
}

а мой индексный указатель имеет следующий код:

@HTML.Action("MyPartialViewAction")

Когда я запускаю веб-приложение, я получаю HttpException с InnerExceptionMessage как:

InnerException { "Частичный вид '~/Views/Shared/MyCustomFolder/_MyPartialView' не найден или механизм просмотра не поддерживает найденные местоположения. Были найдены следующие местоположения:\r\n ~~/Views/Shared/MyCustomFolder/_MyPartialView" } System.Exception {System.InvalidOperationException}

То, что я пробовал до сих пор:

  • Пробовал перемещение _MyPartialView от ~/Views/Shared/MyCustomFolder до ~/Views/Shared/ и ~/Views/MyControllerFolder, но все еще существует ошибка

  • Попробовал изменить мой индексный код до @HTML.RenderAction(), но не повезло.

Любые входы, на которых я ошибаюсь?

Спасибо

4b9b3361

Ответ 1

Вам нужно добавить расширение .cshtml к имени вида:

return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView.cshtml",PartialViewModel);

Ответ 2

На всякий случай выбранный ответ не работает для вас:

Я изменил действие сборки файла cshtml на Content и исправил его.

Ответ 3

Если ответы по-прежнему не работают на вас, и вы поместили частичное во вложенную папку внутри частичных файлов, убедитесь, что вы предоставили полный путь к частичной с расширением.

@Html.Partial("~/Views/Partials/Components/_AdvancedComponentRenderer.cshtml", Model.Content);

Ответ 4

Также дважды проверяйте пробелы после имени файла перед ".cshtml". Я случайно вставил одно пустое место после моего имени файла, и это нарушило автоматическое поведение PartialView() для меня.