ASP.NET MVC 3は、分割ビュー-partialViewを呼び出すいくつかの方法(セット)
4415 ワード
私たちのページは通常いくつかの部分で構成されています.いくつかの共通の領域は通常PartialView(一部のビュー)を作成しますが、これらのビューは完全に固定されているわけではありませんので、特定のControllerで制御する必要があります.静的htmlだけなら、PartialViewにもできますが、あまり意味がありません.MVC 3でPartialViewを呼び出す方法を示します.
まず、テスト用のControllerを作成します.
TestController
中にはActionメソッド、Message()があり、「Message」というPartialViewを返し、このViewに文字列をパラメータとして渡しました.
通常、Controllerを作成すると、右クリックしてViewを追加します.VSはViewsフォルダに対応するviewファイルをデフォルトで作成しますが、この例では「Test/Message.cshtml」のはずです.しかし、partialViewについては、私たちはそうしません.再利用可能なビューなので、Sharedフォルダの下に置くべきです.MVCは「先行を約束する」プログラミングなので、Sharedフォルダの下のViewと現在のページがあるControllerの下のViewをデフォルトで探します.
Sharedフォルダを右クリックしてViewを追加し、「Create as a Partial View」を選択すると、layoutなどのコードが追加されず、完全に空白のviewになります.
そして、Actionの戻りタイプに応じてhtmlの仕事をします.ここでは、Listの各文字列を単純に出力している.
Message.cshtml
最後に、このPartialViewを別のビューで呼び出すことができます.
1つの方法は、ControllerとActionを指定することです.
しかし、ControllerとActionは必須ではありません.新しいオブジェクトをPartialViewに渡すこともできます.
注意:
Html.Action
)が呼び出された
Viewがあるフォルダを探したり、
Sharedフォルダは...Viewのファイルを探しています
もう1つの一般的なケースは、スクリプトリクエストです.次のコードは、JQueryを介してTest/Messageを呼び出し、IDがfuckのDIVに結果を入力します.
まず、テスト用のControllerを作成します.
TestController
public
class
TestController : Controller
{
public
ActionResult Message()
{
var testObj =
new
List<
string
>()
{
"aaa"
,
"bbb"
,
"ccc"
};
return
PartialView(
"Message"
, testObj);
}
}
中にはActionメソッド、Message()があり、「Message」というPartialViewを返し、このViewに文字列をパラメータとして渡しました.
通常、Controllerを作成すると、右クリックしてViewを追加します.VSはViewsフォルダに対応するviewファイルをデフォルトで作成しますが、この例では「Test/Message.cshtml」のはずです.しかし、partialViewについては、私たちはそうしません.再利用可能なビューなので、Sharedフォルダの下に置くべきです.MVCは「先行を約束する」プログラミングなので、Sharedフォルダの下のViewと現在のページがあるControllerの下のViewをデフォルトで探します.
Sharedフォルダを右クリックしてViewを追加し、「Create as a Partial View」を選択すると、layoutなどのコードが追加されず、完全に空白のviewになります.
そして、Actionの戻りタイプに応じてhtmlの仕事をします.ここでは、List
Message.cshtml
@model List<
string
>
<ul>
@
foreach
(var item
in
Model)
{
<li>@item</li>
}
</ul>
最後に、このPartialViewを別のビューで呼び出すことができます.
1つの方法は、ControllerとActionを指定することです.
<h3>Call Html.Action</h3>
@Html.Action(
"Message"
,
"Test"
)
しかし、ControllerとActionは必須ではありません.新しいオブジェクトをPartialViewに渡すこともできます.
<h3>Call Html.Partial</h3>
@Html.Partial(
"Message"
,
new
List<
string
> {
"ccc"
,
"ddd"
,
"eee"
})
注意:
Html.Action
(
"Message"
,
"Test"
)
@Html.Partial(
"Message"
,
new
List<
string
> {
"ccc"
,
"ddd"
,
"eee"
})
Html.Partial(
"Message"
,
new
List<
string
> {
"ccc"
,
"ddd"
,
"eee"
}
)が呼び出された
Viewがあるフォルダを探したり、
Sharedフォルダは...Viewのファイルを探しています
もう1つの一般的なケースは、スクリプトリクエストです.次のコードは、JQueryを介してTest/Messageを呼び出し、IDがfuckのDIVに結果を入力します.
<
h3
>Use JQuery</
h3
>
<
a
href
=
"javascript:;"
onclick
=
"loadFuck()"
>Invoke LoadPartial</
a
>
<
div
id
=
"fuck"
>
</
div
>
<
script
type
=
"text/javascript"
>
function loadFuck() {
$("#fuck").load('/Test/Message');
}
</
script
>