Html.RenderPartial - частичное представление рендера, расположенное в другой папке

У меня есть мой вид 'Create.cshtml' в папке Views-Department. Я хочу использовать частичное представление, которое находится в папке root, CommonViews с именем _EnterpriseStructure.cshtml. Я использую синтаксис RenderPartial

 @{Html.RenderPartial("~/CommonViews/_EnterpriseStructure.cshtml");}

Частичный вид кода

<div id="Client">
   This is a Partial View.
</div>

При выполнении я получаю System.InvalidOperationException.

Ошибка детализации:

Представление в ~ ~ CommonViews/_EnterpriseStructure.cshtml должно быть производным от WebViewPage или WebViewPage.

Я использую ASP.Net MVC 5 Razor Views

2 ответа

Я обнаружил, что Razor View Engine ищет в папках "Views/Shared", "Views/Departments". Когда я переместил Partial View, в папку "Shared" это сработало. Вы не можете включить путь, вы просто должны дать имя View. И добавьте папки для поиска в движке View. Что я не могу понять, так это "Как предоставить больше мест для поиска в View Engine?"

Я бы посоветовал вам использовать пакет nuget T4MVC в вашем проекте MVC. Как только пакет будет включен в ваш проект, вам просто нужно выбрать файл "T4MVC.tt" в вашем проекте (обозреватель решений) и сказать "Запустить пользовательский инструмент". Вот и все. Это создаст константы практически для всего в вашем проекте MVC. Это означает, что все представления, контроллеры, действия, файлы javascript, ресурсы, файлы css, изображения и т. Д. Теперь имеют константы. Таким образом, вы можете избежать использования жестко запрограммированных строк для представлений и т. Д. В своих методах, а также можете использовать сгенерированные константы. по T4MVC. Вам не нужно беспокоиться о пути просмотра и т. Д. T4MVC очень эффективен и необходим для проектов MVC.

Другие вопросы по тегам