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. 在 Views\Shared\Components\MovieCount 下创建默认视图文件 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"

posted @ 2020-10-28 15:43  李花花小番茄  阅读(98)  评论(0编辑  收藏  举报