ASP.NET Core MVC Interview Question #161
What are View Components and when are they preferable to partial views?
Testing, AJAX/JavaScript Integration, Localization & Advanced MVC Senior Advanced
Quick Interview Answer
A partial view is mainly reusable Razor markup and receives data from its caller. A View Component is a reusable rendering component with its own invocation logic and can obtain the data needed to render itself.
Detailed Explanation
A partial view is mainly reusable Razor markup and receives data from its caller. A View Component is a reusable rendering component with its own invocation logic and can obtain the data needed to render itself.
View Components are useful for UI elements such as navigation menus, shopping-cart summaries, or dashboard widgets that require their own data-loading or presentation workflow. They do not participate in normal controller action routing.
Code Example
public class CartSummaryViewComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
var model = await LoadCartAsync();
return View(model);
}
}