zoukankan      html  css  js  c++  java
  • 05. Asp.Net Core 3.x 笔记 ViewComponet

    为什么使用ViewComponet

    • PartView 不能实现业务逻辑
    • ChildAction 要使用Controller的整个生命周期,开销大

    如何使用

    • 新建ViewComponent类:
      新建文件ViewComponents,在其里面新建类 CompanySummaryViewComponent
        public class CompanySummaryViewComponent : ViewComponent
        {
            private readonly IDepartmentService departmentService;
            public CompanySummaryViewComponent(IDepartmentService departmentService)
            {
                this.departmentService = departmentService;
            }
    
            public async Task<IViewComponentResult> InvokeAsync(String title)
            {
                ViewBag.Title = title;
                var summary = await departmentService.GetCompanySummary();
                return View(summary);
            }
        }
    
    • 新建ViewComponent视图
      View/Shard文件夹下新建 Components/CompanySummary文件夹,在里面新建 Default.cshtml
    @model Three.Models.CompanySummary
        <div class="small">
            <div class="row h3">
                Company Summary
            </div>
            <div class="row">
                <div class="col-md-8">
                    员工人数:
                </div>
                <div class="col-md-4">
                    @Model.EmployeeCount
                </div>
            </div>
            <div class="row">
                <div class="col-md-8">
                    部门平均人数:
                </div>
                <div class="col-md-4">
                    @Model.AvgDepartmentEmployeeCount
                </div>
            </div>
    
    • 使用ViewComponent
      1.方式(一)
    <div class="row">
        <div class="col-md-4">
            @await Component.InvokeAsync("CompanySummary", new { title ="汇总"})
        </div>
    </div>
    

    2.方式(二)

    _ViewImports.cshtml中导入本项目的TagHelper

    @addTagHelper "*, Three"
    

    CompanySummaryViewComponent对用的TagHelper是 <vc:company-summary>

    <div class="row">
        <div class="col-md-4">
            <vc:company-summary title="汇总2"></vc:company-summary>
        </div>
    </div>
    
  • 相关阅读:
    【BZOJ 3732】 Network
    【BJOI 2018】 求和
    【HDU 1005】 Number Sequence
    【HDU 3652】 B-numbers
    【SCOI 2007】 降雨量
    BZOJ2186 SDOI2008沙拉公主的困惑(数论)
    #38 游戏(线段树)
    BZOJ2339 HNOI2011卡农(动态规划+组合数学)
    BZOJ3107 CQOI2013二进制A+B(动态规划)
    BZOJ3083 遥远的国度(树链剖分+线段树)
  • 原文地址:https://www.cnblogs.com/easy5weikai/p/13030579.html
Copyright © 2011-2022 走看看