乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何選擇Html.RenderPartial和Html.RenderAction

       aaie_ 2016-04-01
          

       Html.RenderPartial與Html.RenderAction這兩個方法都是用來在界面上嵌入用戶控件的。

       

           Html.RenderPartial是直接將用戶控件嵌入到界面上:

          <%Html.RenderPartial("LogOnUserControl");%>

          <%Html.RenderPartial("~/Areas/Comm/Views/Shared/LogOnUserControl.ascx");%>

      注意:用第一種方法時,用戶控件必須放在調用者同一目錄下,也可以放在View/Shared中。

       

          Html.RenderAction則通過Controller中的Action來調用用戶控件

      Controller:----用戶控件所在Controller

          public ActionResult UserControl()     {         return PartialView();     }

      View:----調用用戶控件的View

          <%Html.RenderAction("UserControl","Controller");%>

           
            RenderPartialRenderAction都是在Asp.net Mvc中用來顯示PartialView的方法,所以在什么時候用哪個方法就是碰到的第一個問題。而要做出正確的選擇就需要對這兩個都有充分的了解,并且 知道其異同點。這也是本文的主題。

      What is Html.RenderPartial

      Html.RenderPartial在Asp.net Mvc中是用來調用PartialView的。PartialView基本上就是Asp.net Webform中的UserControl。調用也很簡單,只要在View中把PartialView的名字作為參數(shù)傳遞就可以。比如:

      <% Html.RenderPartial("YourPartialView", YourData); %>

      YourData是一個可選的參數(shù)。如果有,那么YourData會被賦給PartialView中的Model。如果沒有,那么調用 RenderPartial的View中的Mode和ViewData會被傳遞給PartialView。也就是說,PartialView的數(shù)據(jù)來自于 調用的View。

      What is Html.RenderAction

      Html.RenderAction允許你直接調用某一個Action,并把返回的結果直接顯示在當前調用的View中。比如:

      <% Html.RenderAction("Show", "Tag"); %>

      此時,TagController中的Show方法會被調用。由于這時調用的是一個Action方法,因此可以在此方法中完成你想要完成的各種操作,比如從數(shù)據(jù)庫,文件等獲取數(shù)據(jù),寫數(shù)據(jù)等并返回結果。

      [OutputCache(Duration=6000)]
      public ActionResult Show()
      {
          var tagData = null;
          //Get data from database
          //tagData = tagService.AllHot();
          return PartialView("TagCloud", tagData);
      }

      TagCloud是一個簡單的PartialView文件而已。

      兩者的相同點

      RenderPartial和RenderAction通常都被用來顯示一個功能相對獨立的“塊”,比如說顯示菜單或者導航條。 兩者輸出的結果都被作為調用的View的一部分顯示。

      兩者的不同點

      1. RenderPatial的數(shù)據(jù)來自于調用的View,而RenderAction來自自己。
      2. RenderAction會發(fā)起一個新的Request,而RenderPatial不會。

      如何選擇

      根據(jù)兩者不同點中的第二點,由于RenderAction會調用一個新的Action方法,而Asp.net Mvc中Action是最小的緩存單位,因此如果某一個“塊”的數(shù)據(jù)比較固定,不會因為訪問者的不同而發(fā)生變化,那么這時就是使用 RenderAction的時候了。 題外話,對于RenderAction會發(fā)起一個新的Request,感覺對調用頁面的流程有點破壞。一個View在顯示的時候,自己又發(fā)起一個 Request去獲取數(shù)據(jù)來顯示,顯然有點破壞了作為一個View的原則:

      A View should only know how to render, but not what to render!

      結束了, This is all.

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多