web-dev-qa-db-ja.com

mvc3-別の領域で部分ビューを使用する

部分的なビューに関して2つの質問があります...

  1. 部分ビューと@helperメソッドを使用する場合、両方を同じ意味で使用しており、使用方法の一貫性を高めたいと考えています。あなたたちは何をしますか?

  2. 別の領域からの部分ビューをどのように参照しますか。

Adminという領域があり、通常のViewsディレクトリに部分的なビューがあります。どのように使用しますか..私はそれが見つからないので動作しない以下を試しました。

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

他私が試した-

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

「ヘルパー」と言ったときにHtmlヘルパーを意味するのか、かみそりヘルパーを意味するのかはわかりません。いずれにせよ、Htmlヘルパーは、コントロールのような小さな個別のアイテムである場合にのみ作成します。

Razorヘルパーを意味する場合、それらは、関数のように呼び出して、必要なパラメーターを渡すことができるという点で、Partialsとは異なります。パーシャルは主に「モデル」システム(そしてもちろんTemp/ViewData/Bag)に固執しています。

コードをどのように操作するかがすべてです。

あなたのパーシャルも。接尾辞を含める必要があります。

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

質問者がエリアについて尋ねたので、ここにエリアでそれを行う方法があります

 @Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")
29
Simon_Weaver

私がやろうとしていることの具体的で簡単な例を示しているだけです。メインの共有フォルダーにあるpartialviewを使用して、エリアページからログオフできるようにする必要があります。これが私がしたことです:

  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" }))
    _

それが何らかの形で役立つことを願っています!

2
leah

もう1つのオプションは、共有する領域間で共有する部分ビューを共有することです。

したがって、メインの〜/ Views/Shared /フォルダに配置します。

~/Views/Shared/_MyPartialView.cshtml.

その後、次のように言うことで、どのエリアからでも参照できます。

@Html.Partial("_MyPartialView")
0
Philip Johnson

エリア内のコントローラーに[Area("MyArea")]アノテーションが付いていることを確認してください。この投稿の時点で、ASP.NETCoreのAjaxdiv更新を介してエリア境界全体から部分ビューを取得すると、タグヘルパーと@ Html.ActionLinkを使用できます。

0
KramFfud