ASP.NET MVC 3 PartialViewを呼び出すいくつかの方法

2531 ワード

私たちのページは通常いくつかの部分で構成されています.いくつかの共通の領域は通常PartialView(一部のビュー)を作成しますが、これらのビューは完全に固定されているわけではありませんので、特定のControllerで制御する必要があります.静的htmlだけなら、PartialViewにもできますが、あまり意味がありません.MVC 3でPartialViewを呼び出す方法を示します.
まず、テスト用の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
>
 

    @
    foreach
    (var item
    in
    Model)
    {
        
  • @item
  • }

最後に、このPartialViewを別のビューで呼び出すことができます.
1つの方法は、ControllerとActionを指定することです.

Call Html.Action


@Html.Action(
"Message"
,
"Test"
)
しかし、ControllerとActionは必須ではありません.新しいオブジェクトをPartialViewに渡すこともできます.

Call Html.Partial


@Html.Partial(
"Message"
,
new
List<
string
> {
"ccc"
,
"ddd"
,
"eee"
})
もう1つの一般的なケースは、スクリプトリクエストです.次のコードは、JQueryを介してTest/Messageを呼び出し、IDがfuckのDIVに結果を入力します.
<
h3
>Use JQueryh3
>
<
a
href
=
"javascript:;"
onclick
=
"loadFuck()"
>Invoke LoadPartiala
>
<
div
id
=
"fuck"
>
     
div
>
 
<
script
type
=
"text/javascript"
>
    
function loadFuck() {
        
$("#fuck").load('/Test/Message');
    
}
script
>
真実がある: