27

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

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

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

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

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

他私が試した-

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

5 に答える 5

40

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

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

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

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

@Html.Partial("~/Views/ControllerName/_PartialView.cshtml", Model)
于 2011-09-10T02:22:57.770 に答える
37

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

 @Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")
于 2013-05-13T22:40:16.867 に答える
3

私がやろうとしていることの具体的で単純な例を示しているだけです。メインの共有フォルダーにある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" }))
    

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

于 2014-03-19T07:34:35.350 に答える
2

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

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

~/Views/Shared/_MyPartialView.cshtml.

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

@Html.Partial("_MyPartialView")
于 2018-02-27T11:44:05.130 に答える
0

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

于 2019-07-20T02:58:16.030 に答える