【ASP.NET MVC】HTML支援方法

3707 ワード

Html.ActionとHtml.RenderAction
Actionは、個別のコントローラ操作を実行し、結果を表示します.Actionは、コントローラ操作が不要なモデルを構築し、個別のコントローラコンテキストを利用することができるため、より柔軟性と再利用性を提供します.これらの2つの違いは、RenderActionが応答ストリームに直接書き込むことができることです.コードを見てみましょう.
 1 public class MyController

 2 {

 3     public ActionResult Index()

 4     {

 5         return View();

 6     }

 7 

 8     [ChildActionOnly]

 9     public ActionResult Menu()

10     {

11         var menu=GetMenuFromSomewhere();

12         return PartialView(menu);

13     }

14 }

15 Menu                        

16 

17 @model Menu

18 <ul>

19 @foreach(var item in Model.MenuItem)

20 {

21     <li>@item</li>

22 }

23 </ul>

24 

25  Index.cshtml   ,    Menu       

26 <html>

27     <head></head>

28     <body>

29         @Html.Action("Menu")

30     </body>

31 </html>

32 

33   Menu     ChildActionOnlyAttribute     ,  

34                 URL   Menu  ,  ,

35     Action RenderAction       。

ASP.NET MVC 3には、ControllerContextにもIschildActionという新しい属性があり、ActionまたはRenderActionメソッドでアクションが呼び出されるとその値はTrueとなり、1つのURLで呼び出されるとfalseとなる.