2011-09-09 9 views
20

異なる領域で使用する部分図は...mvc3 - 私は部分的なビューに関する二つの質問を持っている

  1. @helper方法対部分的なビューを使用するために、私は、交換可能に両方 を使用しており、取得したいと思い彼らの の使用法で一貫しています。あなたは何をしていますか?

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

私はadminという領域があり、通常のViewsディレクトリには部分的なビューがあります。どのように私はそれを使用する..私は見つけることができないように仕事をしない以下を試してみました。

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

答えて

34

を私はあなたがどのような場合には、「ヘルパー」と言うとき、あなたは、HTMLヘルパー、またはかみそりのヘルパーを意味するならば、それはだとき、私は唯一のHTMLヘルパーを作成するかわからない - 私が試した他の

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

コントロールのような小さな、個人的なアイテム。

Razorヘルパーを意味する場合は、必要なパラメータを渡して、関数のように呼び出すことができる点でPartialsとは異なります。パーシャルはあなたの部分については

。それはすべてあなたがコードで動作するようにする方法についてです。

「モデル」システム(そしてもちろん温度/ ViewDataを/バッグのとほぼ立ち往生している。あなたは含める必要がありサフィックス。

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

スウィートを言うことによって、任意の領域からそれを参照することができます! – MoXplod

26

質問者は区域について尋ねられたので、ここで私はちょうど私が何をしようとしているの具体的かつ簡単な例を与えているエリアに

@Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml") 
+0

これは地域内でさえ必要であるようです。私はこれまで幸運を祈ることはできませんでした。しかし、それができる方法があれば、聞くことに興味があります –

+2

同じディレクトリ内で、標準ディレクトリを使用している場合は "PrivacyPolicy.cshtml" MVCは予想されるディレクトリ構造を検索するため、構造体として使用されます。相対パスはAFAIKを動作させることは想定されていません。おそらく、MVCがパスを検索する動的な方法のために相対パスが何であるかは不明です。私。それはArea、またはArea/Views /または/ Area/Views/ControllerName /に根付きますか?したがって、期待されるディレクトリ構造の何かのためのファイル名か、あなたの答えのようなアプリのルートからの完全なパスです。 – AaronLS

+0

私はデフォルトのビューファインダー(またはそれが呼び出されているもの)を微調整していますので、途中でデフォルトの動作を壊してしまう可能性があります。しかし、この方法では、 –

1

をそれを行う方法です。 メイン共有フォルダにあるpartialviewを使ってエリアページからログオフする必要があります。ここに私がやったことだ:エリアビューで

  1. は私が_LoginPartialコードは、私から、{new = area ("")}を追加位置していたメインの共有フォルダで

    <div class="float-right"> 
         <section id="login">    
          **@Html.Partial("~/Views/Shared/_LoginPartial.cshtml")** 
         </section> 
        </div> 
    
  2. によって部分図を参照します。

    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

もう1つの方法は、SHAREDエリア間で共有したい部分ビューを作成することです。

これをメイン〜/ V​​iews/Shared /フォルダに入れます。

~/Views/Shared/_MyPartialView.cshtml. 

その後、サフィックスiが欠けていたものだった

@Html.Partial("_MyPartialView") 
関連する問題