建立一個檢視元件
View 元件封裝了可重用的邏輯和檢視。它們的定義是:
- 一個 ViewComponent 類,包含用於獲取和準備檢視資料以及決定要呈現哪個檢視的邏輯。
- 一個或多個檢視
由於它們包含邏輯,因此它們比部分檢視更靈活,同時仍然可以促進關注點的良好分離。
一個簡單的自定義檢視元件定義為:
public class MyCustomViewComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync(string param1, int param2)
{
//some business logic
//renders ~/Views/Shared/Components/MyCustom/Default.cshtml
return View(new MyCustomModel{ ... });
}
}
@*View file located in ~/Views/Shared/Components/MyCustom/Default.cshtml*@
@model WebApplication1.Models.MyCustomModel
<p>Hello @Model.UserName!</p>
可以從任何檢視呼叫它們(甚至可以通過返回 ViewComponentResult
來呼叫控制器)
@await Component.InvokeAsync("MyCustom", new {param1 = "foo", param2 = 42})