Ответ 1
Вам нужно добавить расширение .cshtml к имени вида:
return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView.cshtml",PartialViewModel);
У меня есть следующий код контроллера:
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()
, но не повезло.
Любые входы, на которых я ошибаюсь?
Спасибо
Вам нужно добавить расширение .cshtml к имени вида:
return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView.cshtml",PartialViewModel);
На всякий случай выбранный ответ не работает для вас:
Я изменил действие сборки файла cshtml на Content и исправил его.
Если ответы по-прежнему не работают на вас, и вы поместили частичное во вложенную папку внутри частичных файлов, убедитесь, что вы предоставили полный путь к частичной с расширением.
@Html.Partial("~/Views/Partials/Components/_AdvancedComponentRenderer.cshtml", Model.Content);
Также дважды проверяйте пробелы после имени файла перед ".cshtml". Я случайно вставил одно пустое место после моего имени файла, и это нарушило автоматическое поведение PartialView() для меня.