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

來源:互聯網
上載者:User

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。

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/aspx/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.