mvc3 - использование частичных видов в другой области - PullRequest
22 голосов
/ 10 сентября 2011

У меня есть два вопроса относительно частичных представлений ...

  1. Когда использовать частичные представления по сравнению с методами @helper, я использовал оба взаимозаменяемо и хотел бы добиться большей согласованности в их использовании,Что вы, ребята, делаете?

  2. Как вы относитесь к частичному виду из другой области.

У меня есть область с именем admin, и у меня естьчастичное представление в обычном каталоге Views.Как мне его использовать .. Я пробовал следующее, которое не работает, так как его невозможно найти.

@Html.Partial(VirtualPathUtility.ToAbsolute("~/Views/ControllerName/_PartialView"),
 Model)

другие, которые я пробовал -

@Html.Partial("~/Views/ControllerName/_PartialView", Model)

Ответы [ 4 ]

36 голосов
/ 10 сентября 2011

Я не уверен, что вы имеете в виду Html-помощников или бритвенных помощников, когда говорите «помощники». В любом случае я создаю Html-помощники только тогда, когда это небольшой отдельный элемент, например элемент управления.

Если вы имеете в виду помощников Razor, то они отличаются от Partials тем, что вы можете вызывать их как функции, передавая любые параметры, которые вам нужны. Частичные фрагменты во многом застряли в «модельной» системе (и, конечно, Temp / ViewData / Bag.

Это все о том, как вы хотите работать с кодом.

Что касается вашего Частичного. Вы должны включить суффикс.

@Html.Partial("~/Views/ControllerName/_PartialView.cshtml", Model)
29 голосов
/ 14 мая 2013

Поскольку спрашивающий спрашивал об областях, вот как это сделать в области

 @Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")
1 голос
/ 19 марта 2014

Я просто привожу конкретный и простой пример того, что я пытаюсь сделать.Мне нужно иметь возможность выйти со страницы области, используя частичное представление, расположенное в главной общей папке.Вот что я сделал:

  1. При просмотре области я ссылаюсь на частичное представление по

       <div class="float-right">
            <section id="login">            
              **@Html.Partial("~/Views/Shared/_LoginPartial.cshtml")**
            </section>
       </div>
    
  2. В главной общей папке, где _LoginPartial код был найден Я добавил {new = area ("")}, из:

    using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
    

    в:

    using (Html.BeginForm("LogOff", "Account", **new { area = "" },** FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
    

Надеюсь, что это поможет каким-то образом!

0 голосов
/ 27 февраля 2018

Другой вариант - сделать частичное представление, которым вы хотите поделиться, между областями SHARED.

Таким образом, вы помещаете его в основную папку ~ / Views / Shared /, например,

~/Views/Shared/_MyPartialView.cshtml.

Затем вы можете обратиться к нему из любой области, сказав

@Html.Partial("_MyPartialView")
...