程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Html.Action和Html.RenderAction:ASP.NET MVC中的HTML輔助方法

Html.Action和Html.RenderAction:ASP.NET MVC中的HTML輔助方法

編輯:關於ASP.NET

Html.Action和Html.RenderAction

Action是執行單獨的控制器操作並顯示結果,Action提供了更多的靈活性和重用性,因為控制器操作可以建立不用的模型,可以利用單獨的控制器上下文,他們兩個僅有的不同是:RenderAction可以直接寫入響應流。下面看一下代碼:

public class MyController
{
    public ActionResult Index()
    {
        return View();
    }
    
    [ChildActionOnly]
    public ActionResult Menu()
    {
        var menu=GetMenuFromSomewhere();
        return PartialView(menu);
    }
}

Menu操作構建一個菜單模型並返回一個帶有菜單的分布視圖

@model Menu
<ul>
@foreach(var item in Model.MenuItem)
{
    <li>@item</li>
}
</ul>

在Index.cshtml視圖中,可以調用Menu操作來顯示菜單

<html>
    <head></head>
    <body>
        @Html.Action("Menu")
    </body>
</html>

注意Menu操作使用了ChildActionOnlyAttribute特性來標記,這個特性設置防止了運行時直接通過一個URL來調用Menu操作,相反,只能通過Action或RenderAction來調用這個操作。

在ASP.NET MVC3中,在ControllerContext上也有一個稱為IsChildAction的新屬性,當通過Action或RenderAction方法調用操作時,它的值就為True,當通過一個URL調用時,它的值為false。

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved