Html. RenderPartial and Html. RenderAction usage

Source: Internet
Author: User

Differences between Html. RenderPartial and Html. RenderAction

Mvc renderaction renderpartial Miscellaneous

Both Html. RenderPartial and Html. RenderAction are used to embed user controls on the interface.

Html. RenderPartial is to directly embed the user control into the interface:

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

Or

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

Note: when using the first method, the user control must be placed in the same directory of the caller, or in View/Shared.

The Html. RenderAction calls the user control through the Action in the Controller.

Controller: ---- Controller of the User Control

Public ActionResult UserControl ()
{
Return PartialView ();
}

View: ---- call the View of the user control

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

I prefer RenderPartial.

Both RenderPartial and RenderAction are used to display PartialView methods in Asp.net Mvc. Therefore, when to use this method is the first problem. To make the right choice, you must have a full understanding of both of them and understand their similarities and differences. This is also the topic of this article.

What is Html. RenderPartial

Html. RenderPartial is used to call PartialView in Asp.net Mvc. PartialView is basically the UserControl in Asp.net Webform. Calling is also very simple. You only need to pass the PartialView name as a parameter in the View. For example:

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

YourData is an optional parameter. If yes, YourData will be assigned to the Model in PartialView. If no, the Mode and ViewData in the View that calls RenderPartial will be passed to PartialView. That is to say, the data of PartialView comes from the called View.

What is Html. RenderAction

Html. RenderAction allows you to directly call an Action and display the returned result in the View of the current call. For example:

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

The Show method in TagController is called. Because an Action method is called at this time, you can complete the operations you want to complete in this method, such as getting data from databases, files, writing data, and returning results.

[OutputCache(Duration=6000)]

public ActionResult Show()

{

var tagData = null;

//Get data from database

//tagData = tagService.AllHot();

return PartialView("TagCloud", tagData);

}

TagCloud is a simple PartialView file.

Similarities

RenderPartial and RenderAction are usually used to display a relatively independent "Block" of a function, such as display menu or navigation bar. Both outputs are displayed as part of the called View.
Differences between the two

  1. RenderPatial data comes from the called View, while RenderAction comes from itself.
  2. RenderAction initiates a new Request, but RenderPatial does not.
How to select

According to the second point in the two differences, because RenderAction will call a new Action method, and Action in Asp.net Mvc is the smallest cache unit, if the data of a "Block" is relatively fixed, it will not change because of different visitors, so it is time to use RenderAction. In other words, RenderAction will initiate a new Request, which may damage the page calling process. When a View is displayed, another Request is initiated to obtain the data for display, which obviously breaks the principle of being a View:

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

Logistics Distribution Network-logistics, distribution, freight expert http://www.wlphw.com/website construction-website production-online shop-Shopping Mall Website-blog-Forum-enterprise display website-product display website-enterprise website-product sale website-product display website-network promotion websites-and other websites. QQ contact: 471226865

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.