日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Html.RenderPartial与Html.RenderAction

發布時間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Html.RenderPartial与Html.RenderAction 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Html.RenderPartial與Html.RenderAction的區別

??? 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");%>

個人比較喜歡用RenderPartial

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

What is Html.RenderPartial

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

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

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

What is Html.RenderAction

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

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

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

[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的一部分顯示。

兩者的不同點

  • RenderPatial的數據來自于調用的View,而RenderAction來自自己。
  • RenderAction會發起一個新的Request,而RenderPatial不會。
  • 如何選擇

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

    轉載于:https://www.cnblogs.com/hsw-2013/p/3187894.html

    總結

    以上是生活随笔為你收集整理的Html.RenderPartial与Html.RenderAction的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。