建立一個檢視元件

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})