Reputation: 55729
What is the difference between a View and a PartialView in ASP.NET MVC?
At first glance the need for both seems non-obvious to me.
Upvotes: 42
Views: 46919
Reputation: 708
@{ Layout="_Layout"; }
<!DOCTYPE html> <html> <head> </head> <body> </body> </html>
@{await Html.PartialAsync("Partial"); }
Example To Demo Partial View Is Strongly Type
in View
@model List<Student>; @{ Layout = "_Layout"; } <div>@await Html.PartialAsync("Partial",Model)</div>
in Partial View
@model List<Student>; <ul> @foreach (Student student in Model) { <li>@student.ID</li> <li>@student.Name</li> <li>@student.Age</li> } </ul>
SP.NET Core MVC looks for Partial View in the same way like Regular Views (i.e. in Views/ and Views/Shared folders). This means you can create controller specific partial views or shared partial views.
Good Luck
Upvotes: 0
Reputation: 111
It works like that:
return View() the view content goes in the @RenderBody() of the /Shared/_Layout.cshtml
return PartialView() it returns only the view content
Upvotes: 11
Reputation: 16711
Look at StackOverflow.com site: Main site (View) contains components like:
So Tags, related, Ad etc. can be composed as PartialViews. The advantage of this is that PartialViews can be simply cached by OutputCache instead of recreating all site: performance gain.
Upvotes: 3
Reputation: 122644
In theory, the answer is: A partial view is a "sub-view" that you embed within a main view - something that you might reuse across multiple views, like a sidebar.
In practice, the answer is: Very little.
In theory, partial views are more lightweight than standard views, but it's perfectly OK to pass a "regular" view to RenderPartial
and the performance seems to be exactly the same. I frequently use regular .aspx views as "partial" views because you can make them reference a master view in order to provide templated content like what you can do with UserControls in ASP.NET WebForms. See here.
Partial views are more like web parts on a portal - they are completely self-contained objects. Use them if the layout is simple and static, or if you're annoyed by the Intellisense errors when you don't have the <html>
and <body>
tags in a standard View.
Upvotes: 43
Reputation: 12396
Views are the general result of a page that results in a display. It's the highest level container except the masterpage. While a partial view is for a small piece of content that may be reused on different pages, or multiple times in a page.
If you're coming from webforms, view is similar to a web content form, while a partial view is like a user control.
Upvotes: 6
Reputation: 18586
If you come from a webforms background, think of PartialView as a usercontrol.
Upvotes: 3
Reputation: 1162
Consider a partialview like a control in webforms, the idea is the partial is reusable
Upvotes: 2