(初识MVC Core)七、复用的View:View Component

1.优点:

1)相当于PartialView + 一个小型轻量级的Controller(注:PartialView无法包含业务逻辑)

2)适用于较为复杂业务

3)可以使用Razor语法

2.创建View Component

结构:

1)创建ViewComponents文件夹、MovieCountViewComponent.cs

using CoreModel;
using CoreModelTwo.Services;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace CoreModelTwo.ViewComponents
{
    public class MovieCountViewComponent : ViewComponent
    {
        private readonly IMovieService _movieService;

        //依赖注入
        public MovieCountViewComponent(IMovieService movieService)
        {
            _movieService = movieService;
        }

        public async Task<IViewComponentResult> InvokeAsync()
        {
            var movies = await _movieService.GetByCinemaAsync(1);
            var count = movies.Count();

            var movies2 = await _movieService.GetByCinemaAsync(1);
            count += movies2.Count();

            return View(count);
        }

    }
}

2)在Shared文件夹里创建文件夹Components、MovieCount和Default.cshtml

Default.cshtml:

@model int

<h2>Movie Count:</h2>
<h2>@Model</h2>

3)使用:在页面里头加入

@await Component.InvokeAsync("MovieCount")

结果显示:

参阅:https://v.qq.com/x/page/x0750why9sm.html

谢谢Dave

原文地址:https://www.cnblogs.com/dzw159/p/10591514.html

时间: 2024-11-05 13:24:07

(初识MVC Core)七、复用的View:View Component的相关文章

初识MVC Core(一)

1.新建一个Mvc Core项目 注:刚开始依赖项是有黄色三角形,等待安装 2.打开Startup.cs,修改Configure public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILogger<Startup> logger) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context)

(初识MVC Core)八、发布

1.部署方式 1)FDD(Framework-dependent) 说明:类似IIS网站类的部署,服务器上面必须安装好Framework环境,只发布自己程序文件生成的文件 优势: ①无需配置目标系统 ②部署的文件很小 ③.NET Core被共享使用 劣势: ①必须预先安装.NET Core ②可能存在兼容性问题 2)SCD(Self-Contained),自包含的部署 说明:打包好了的.NET Core包,一同发布,省得在服务器安装.NET Core环境 优势: ①对Web应用使用的.NET C

(初识MVC Core)二、建立基础逻辑数据

1.结构 2.新建一个model类库CoreModel 建立model:Cinema.cs.Movie.cs.Sales.cs using System; using System.Collections.Generic; using System.Text; namespace CoreModel { /// <summary> /// 电影院 /// </summary> public class Cinema { /// <summary> /// 编码 ///

(初识MVC Core)三、包的安装NPM与打包--css和js

一:NPM的安装 1.右键项目=>添加新建项=>创建NPM配置文件 2.新增引用插件包(会出现自动提示),写完一个之后,保存一下,就会自动安装插件包 显示所有隐藏文件就可以看到安装的插件包了 二:js和css打包bundleConfig.json 1.新建一个名为bundleConfig.json的json 2.打包 1)在项目wwwroot底下创建文件夹js和css 2)修改bundleConfig.json内容 [ //css { //打捆生成的css文件路径和名称并压缩 "ou

.Net Core(三)MVC Core

MVC Core的改动感觉挺大的,需要的功能大多从Nuget安装,还内置了IOC,支持SelfHost方式运行等等. 一.项目结构的变化创建的新MVC项目的结构发生了变化,比如:静态文件需要统一放置到wwwroot文件夹,配置文件变成了appsettings.json,用startup.cs文件代替了global文件:原先对view命名空间的引用配置在view下的web.config,现在则改成了使用_ViewImport.cshtml文件,并且用razor语法来配置. 二.内置IOCa)Aut

(4) Mvc Core IOC

asp.net mvc core 内置了 IOC 容器,不再需要 autofac 等,当然 autofac 也是支持.net core的(http://www.open-open.com/lib/view/open1454127071933.html).内置 IOC 是通过构造函数注入,而不是属性注入. 内置的 IOC 有三种生命周期:Transient: Transient 服务在每次被请求时都会被创建.这种生命周期比较适用于轻量级的无状态服务.Scoped: Scoped 生命周期的服务是每

ASP.NET MVC Core的TagHelper (高级特性)

这篇博文ASP.NET MVC Core的TagHelper(基础篇)介绍了TagHelper的基本概念和创建自定义TagHelper的方式,接着继续介绍一些新的看起来比较高级的特性.(示例代码紧接着上一遍博文) 一.使用自定义的标记元素 之前基础篇介绍的TagHelper的功能是给已有的HTML元素提供一个自定义的属性标记,然后服务器认出这个标记后,将标记转化成最终的HTML.这里将要介绍的功能是,定义个全新的Tag,看起来跟普通的HTML元素一样.是不是觉得很熟悉呢(前提是你用过Angula

第一节初识MVC实现计算器

第一节初识MVC实现计算器 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab filetype=css: */ /*! * Base CSS for pdf2htmlEX * Copyright 2012,2013 Lu Wang * https://github.com/coolwanglu/pdf2htmlEX/blob/master/share/LICENSE */ /* Part 1: Web Page Lay

Android 初识 MVC、MVP框架

转载请标明出处: http://blog.csdn.net/airsaid/article/details/51315096 本文出自:周游的博客 前言 MVC MVP 前言 MVC.MVP.MVVP相信大家已经耳熟能详了,作为Android最出名的三个框架,它们的应用是非常的广泛.这篇博客就来简单介绍下其中二种框架.也加强下自己对这方面的了解.由于自己菜鸟一枚,有不对和需要补充的地方欢迎评论~ MVC MVC全名是:Model(模型) View(视图) Controller(控制器) 是软件架