Mvc3 - использование частичных представлений в другой области
У меня есть два вопроса относительно частичных представлений...
-
Когда использовать Partial views vs @helper методы, я использовал оба
взаимозаменяемы и хотели бы стать более последовательными в своих
Применение. Что вы, ребята, делаете?
-
Как вы ссылаетесь на частичный вид из другой области.
У меня есть область под названием admin, и у меня есть частичный вид в обычной директории представлений. Как я его использую.. Я попробовал следующее, которое не работает, поскольку оно не может быть найдено.
@Html.Partial(VirtualPathUtility.ToAbsolute("~/Views/ControllerName/_PartialView"),
Model)
другой я пробовал -
@Html.Partial("~/Views/ControllerName/_PartialView", Model)
Ответы
Ответ 1
Я не уверен, если вы имеете в виду помощников Html или помощников бритвы, когда вы говорите "помощники". В любом случае, я создаю только помощников Html, когда это маленький, индивидуальный элемент, такой как элемент управления.
Если вы имеете в виду помощников Razor, то они отличаются от Partials тем, что вы можете называть их функциями, передавая любые параметры, которые вы хотите. Частицы в значительной степени застревают с "модельной" системой (и, конечно, Temp/ViewData/Bag.
Все о том, как вы хотите работать с кодом.
Что касается вашего Partial. Вы должны включить суффикс.
@Html.Partial("~/Views/ControllerName/_PartialView.cshtml", Model)
Ответ 2
Так как вопроситель спросил здесь о местах, как это сделать в области
@Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")
Ответ 3
Я просто даю конкретный и простой пример того, что я пытаюсь сделать.
Мне нужно иметь возможность выхода из системы на странице области с помощью частичного просмотра, находящегося в главной общей папке. Вот что я сделал:
-
В представлении области я ссылаюсь на частичный вид на
<div class="float-right">
<section id="login">
**@Html.Partial("~/Views/Shared/_LoginPartial.cshtml")**
</section>
</div>
-
В главной общей папке, где был найден код _LoginPartial, я добавил {new = area ("")}
, from:
using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
to:
using (Html.BeginForm("LogOff", "Account", **new { area = "" },** FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
Надеюсь, что это поможет в некотором роде!
Ответ 4
Другой вариант - сделать частичное представление, которым вы хотите поделиться, между разделенными областями.
Таким образом, вы положили его в основную папку ~/Views/Shared/, например,
~/Views/Shared/_MyPartialView.cshtml.
Затем вы можете обратиться к нему из любой области, сказав
@Html.Partial("_MyPartialView")
Ответ 5
Убедитесь, что ваши контроллеры в областях имеют аннотацию [Area("MyArea")]
. На момент написания этой статьи извлечение частичных представлений через границы области с помощью обновлений div Ajax в ASP.NET Core работает для меня с помощью Tag Helpers и @Html.ActionLink.