ASP.NET MVC動的選択VIEW

4901 ワード

ASP.でNET MVCでは、通常、モデルを使用してビューデータを準備する操作方法を呼び出すビューを作成します.次に、操作方法は、コントローラのViewメソッドを呼び出してビューを作成する.ただし、ビューの異なる部分を作成するには、異なる操作方法を呼び出す必要があります.たとえば、最新のニュース、天気、スポーツ情報を表示するページがあるとします.この場合、ニュースを処理し、天気を処理し、スポーツ情報を処理する操作方法が必要になる可能性があります.これにより、異なる条件で異なるビューを表示したり、複雑なビューをより小さく、管理しやすい小さなブロックに分解したりすることができます.
このトピックでは、ビューを作成するサブセクション(サブビュー)のビュー(親ビュー)から操作方法を呼び出す方法について説明します.
親ビューと子ビュー
親ビューは、サブビューに戻る操作方法の呼び出しを含むビューです.親ビューには、表示されるページのほとんどのHTMLが含まれています.サブビューには、ビューの一部に必要なタグのみが含まれます.
たとえば、リストを作成するサブビューには、次の例に示すように、リストのHTMLのみが含まれます.
<ul>

  <li>Item 1</li>

  <li>Item 2</li>

  <li>Item 3</li>

</ul>

他のすべてのタグ(本文、タイトルなど)が親ビューに含まれます.
呼び出し操作とサブビューを表示するためのRenderActionヘルプメソッド
ASP.NET MVCは、フォームやリンクなどの多くのタイプのHTML要素を提示し、入力検証などの一般的なタスクを簡略化するHTMLヘルプメソッド(拡張メソッド)を提供します.サブビューを表示するHTMLヘルプには、ActionRenderActionの2つがあります.これらのHTMLヘルプはChildActionExtensionsクラスにあります.
Actionメソッドは、サブビューを文字列として返し、直接表示することができる.RenderActionメソッドは、サブビューをその場で表示します.
たとえば、前のセクションに表示されたHTMLからなるChildListというサブビューがあるとします.コントローラには、サブビューを表示するための次の操作方法があります.
public ActionResult ChildList()

{

    return View();

}

コントローラには、親ビューまたはサブビューを表示するための特定の方法はありません.まず、親ビューを表示し、親ビューを表示してから、必要なサブビューを表示します.
操作方法を呼び出して親ビューにサブビューを表示するには、次の例に示すように、Actionヘルプメソッドを使用するか、RenderActionヘルプメソッドを使用します.
// One alternative (renders a string)

<%= Html.Action("ChildList") %>



//Another alternative (renders in place)

<% Html.RenderAction("ChildList"); %>

注意してください.Actionヘルプメソッドは文字列を返すので、等号(=)が必要です.
パラメータをヘルプメソッドに渡す
親ビュー内の複数の場所から同じ操作方法を呼び出し、パラメータを渡して表示する内容を指定できます.ActionおよびRenderActionは、パラメータ名と値のペアを含むオブジェクトを受け入れる方法でリロードされます.次の例では、Display操作方法を呼び出すRenderAction方法のタグを示す.この場合、このタグは、サブビューの名前の値を含む匿名のオブジェクトを渡し、対応する部分を表示します.このタグは「news」セクションを示し、その後に「weather」セクションを示します.
<% Html.RenderAction("Display", new { section = "News" }); %>

<% Html.RenderAction("Display", new { section = "Weather" }); %>

Displayの操作方法は、次の例と同様です.
public ActionResult Display(string section)

{

    return View(section);

}

他のコントローラまたは領域から操作方法を呼び出す
現在のコントローラ以外のコントローラにある操作方法を呼び出すことができます.この操作を実行するには、RenderActionメソッドのリロードを呼び出します.このメソッドでは、使用する操作メソッドとコントローラの名前を指定できます.次の例では、SectionControllerクラスを呼び出すDisplay操作方法のタグを示します.1番目のパラメータ(文字列)は操作方法の名前で、2番目のパラメータ(文字列)はコントローラの名前です.
<% Html.RenderAction("Display", "Section"); %>

必要な操作方法が他の領域にある場合は、次のように1つのオブジェクトに領域名を渡すことができます.
<% Html.RenderAction("Display", new { area = "Navigation" }); %>

RenderActionメソッドの異なるリロードを使用することによって、異なる領域の異なるコントローラを呼び出すこともできる.
 
MSDNの文章のタイトルが足りないので、内容は変わっていません.タイトルを変えただけで、みんなが調べやすいです.
回転元:http://msdn.microsoft.com/zh-cn/library/ee839451.aspx