0

_Layout.cshtml に、特定の URL に対してのみ表示したい部分ビューがあります。私の最初の考えは、モデル@model Stringとして文字列を使用する部分でした。呼び出されたアクションメソッドでは、これを返します return PartialView("_MyPartial", new string{Request.FilePath}); パーシャルでは、モデルに含まれる URL がパーシャルを表示できる URL であるかどうかを確認するために、モデルをチェックする外側の div をラップする if ブロックがあります。

ifブロックチェックでURLをハードコーディングする必要があるため、この方法は好きではありません

@if( Model == "/Test/Home")
{
    <div>
       Just an example
    </div>

}

これを行う最良の方法は何ですか?

ありがとう

4

2 に答える 2

3

ビュー内で最初に意図したように検証を行った場合でも、ハードコードされた文字列を使用する必要はありません。

使用できます

Request.Url.AbsolutePath

現在のURLを取得して

Url.Action("action", "controller")

許容できない場所を生成します。

そうは言っても、コントローラー内に部分ビューを表示するかどうかをロジックで決定し続けます。

if(showPartialView)
   return PartialView("_MyPartial");
else
   return new EmptyResult();
于 2012-05-03T23:27:39.300 に答える
0

リクエストに基づいてアクションを決定するのは、コントローラーの責任です。コントローラーがビューを選択するのであれば、なぜパーシャルも選択しないのでしょうか? コントローラーに必要なパーシャルがある場合はそれを把握し、それをビュー モデルのビューに渡します。

于 2012-05-03T23:29:15.057 に答える