ASP.NET Core MVC/View Component

以前有 Partial View,但是无法包含业务逻辑 Controller 里的逻辑也无法复用

View Component 的优势:

● 相当于带着小型 Controller 的 Partial View
● 适用于较复杂业务
● 可使用 Razor 语法






定义:
</font size = 5 color = blue>


  1. 项目中创建 ViewComponents 文件夹
  2. ViewComponents 文件夹下创建以 ViewComponent 结尾的类继承自Microsoft.AspNetCore.Mvc.ViewComponent
  3. 在 ViewsSharedComponentsMovieCount 下创建默认视图文件 Default.cshtml
    public class MovieCountViewComponent: Microsoft.AspNetCore.Mvc.ViewComponent
    { 
        public async Task<IViewComponentResult> InvokeAsync()
        {
            int Count = 666;
            return View(Count);
        }
    }

视图中:

@model int
<h2>@Model</h2>


视图中调用

通过@(第二个参数是向方法传递参数)

@await Component.InvokeAsync("Count", 123)

<vc:movie-count cinema-id="@ViewBag.CinemaId"></vc:movie-count>

//使用这种方法要在——ViewImports中引入当前项目
@addTagHelper "*, CoreDemo"

原文地址:https://www.cnblogs.com/liflower/p/13891474.html