The Partial tag helper is designed to replace the Html.Partial
and Html.RenderPartial
methods as the recommended mechanism for including partial pages in a Razor content page.
Attribute | Description |
---|---|
name |
The name of the partial file |
model |
The model to be passed in to the partial view |
for |
An expression to be evaluated against the current page model. Cannot be used in conjunction with the model attribute |
view-data |
A ViewData dictionary to be passed to the partial view |
Notes
The partial tag helper will always load the partial content asynchronously.
The name
attribute will search all registered partial locations for a file with the supplied name (without the extension). The following example will search for _MyPartial.cshtml in Pages, Pages/Shared and Views/Shared by default:
<partial name="_MyPartial" ... />
You can provide a partial path, which will be appended to the search locations:
<partial name="Folder1/_MyPartial" ... />
Now the framework will search for the following:
- Pages/Folder1/_MyPartial.cshtml
- Pages/Shared/Folder1/_MyPartial.cshtml
- Views/Shared/Folder1/_MyPartial.cshtml
The model
attribute and the for
attribute both provide a means to pass data to the Partial. You can use one or the other but not both. The examples that follow illustrating the difference both assume that the current PageModel has a Contacts
property:
<partial name="_MyPartial" model="Model.Contacts" />
<partial name="_MyPartial" for="@Model.Contacts" />
or
<partial name="_MyPartial" for="Contacts" />
The last two examples are equivalent. The @Model
part of the expression is inferred in the second approach.