Вызов @Html.Partial для отображения частичного представления, принадлежащего другому контроллеру
Я разрабатываю приложение ASP.NET MVC 3, страницы содержания которого имеют общую структуру элементов макета. Однако, поскольку страница входа в систему не соответствует этому расположению, я не могу разместить этот макет в \Views\Shared\_Layout.cshtml
.
Итак, я хотел бы добавить еще один общий макет, скажем, \Views\Shared\_Content.cshtml
, и вызвать его из представлений контента... но, к сожалению, эти представления относятся к разным контроллерам.
Есть ли способ вызвать @Html.Partial
для представления, принадлежащего другому контроллеру?
Ответы
Ответ 1
Это не проблема.
@Html.Partial("../Controller/View", model)
или
@Html.Partial("~/Views/Controller/View.cshtml", model)
Должен сделать трюк.
Если вы хотите пройти через (другой) контроллер, вы можете использовать:
@Html.Action("action", "controller", parameters)
или любой другой перегрузки
Ответ 2
Как сказал GvS, но я также считаю полезным использовать строго типизированные представления, чтобы я мог написать что-то вроде
@Html.Partial(MVC.Student.Index(), model)
без магических строк.