.Net Core组件化视图(部分视图)
.Net Core组件化视图(部分视图)
1.背景
1.以前我们使用.Net的时候使用部分视图的方式在,.Net Core 中能在单独处理逻辑的部分视图没有了,但是我们还是想使用现在的.Net Core换了一种方式,将视图组件化了。
2.视图组件介绍
1.可以将我们的视图重复的部分分离出来,达到可复用。
2.可以编写业务逻辑,参数传递,单独测试,使用简单。
3.将复杂的页面,简单化。
3.视图组件特点
1.派生自ViewComponent使用 [ViewComponent] 属性装饰类,或从具有 [ViewComponent] 属性的类派生像控制器一样,视图组件必须是 public ,非嵌套和非抽象类。
视图组件名称是删除了 ViewComponent 后缀的类名,可以使用 ViewComponentAttribute.Name 属性显示指定。
2.完全支持构造函数依赖注入不参与控制器生命周期,这意味着不能在视图组件中使用过滤器
3.视图组件在 InvokeAsync 方法中定义其逻辑,并返回 IViewComponentResult 。参数直接来自视图组件的调用,而不是来自模型绑定。视图组件从不直接处理请求。通常,视图组件通过调用 View 方法初始化模型并将其传递给视图。
总之,视图组件有以下特点:
- 定义一个 InvokeAsync 方法并返回 IViewComponentResult。
- 通常通过调用 ViewComponent View 方法初始化模型并将其传递给视图。
- 参数来自调用方法,而不是 HTTP,没有模型绑定。
- 不能直接作为 HTTP 端点访问,它是从你的代码(通常在视图中)调用的。视图组件不处理请求。
- 在签名上重载,而不是当前 HTTP 请求的任何细节。
4.视图组件路径
/Views/Home/Components/Header/Index.cshtml
/Views/Shared/Components/Header/Index.cshtml
/Pages/Shared/Components/Header/Index.cshtml
1.只能放在这3个位置,规则在下面。
Views/<controller_name>/Components/<view_component_name>/<view_name>
Views/Shared/Components/<view_component_name>/<view_name>
Pages/Shared/Components/<view_component_name>/<view_name>

这个就是放错了,提示我放到正确的位置。
5.视图组件的使用
1.后台代码
视图组件类可以在项目的任何文件夹中。 [ViewComponent] 特性可以更改用于引用视图组件的名称。
[ViewComponent(Name = "Header")]
public partial class HeaderController : ViewComponent
{
//调用异步方法
public async Task<IViewComponentResult> InvokeAsync(int id) {
//返回参数,Inex是自己定义的视图名称,如果没有就是default
//第二个是返回参数,和之前的view()的参数一样。
return View("Index",id);
}
}
继承于ViewComponent返回IViewComponentResult。
还可以这样
/// <summary>
/// 控制器调用
/// </summary>
/// <returns></returns>
public IActionResult Info() {
return ViewComponent("Header", );
}
2.前台代码
@await Component.InvokeAsync("Header", new { id=})
效果

参考代码:https://gitee.com/D_C_L/Test_ViewComponent.git
参考地址: https://www.cnblogs.com/afei-24/p/11317885.html
.Net Core组件化视图(部分视图)的更多相关文章
- ASP.NET Core MVC之ViewComponents(视图组件)
		前言 大概一个来星期未更新博客了,久违了各位,关于SQL Server性能优化会和ASP.NET Core MVC穿插来讲,如果你希望我分享哪些内容可以在评论下方提出来,我会筛选并看看技术文档来对你的 ... 
- ASP.NET Core MVC之ViewComponents(视图组件)知多少?
		前言 大概一个来星期未更新博客了,久违了各位,关于SQL Server性能优化会和ASP.NET Core MVC穿插来讲,如果你希望我分享哪些内容可以在评论下方提出来,我会筛选并看看技术文档来对你的 ... 
- 【Android】10.1 扩展组件库和其他视图--本章示例主界面
		分类:C#.Android.VS2015: 创建日期:2016-02-18 1.主界面运行截图 2.MainActivity.cs文件中对应的代码 chItems.Add(new Chapter() ... 
- 【asp.net core 系列】3 视图以及视图与控制器
		0.前言 在之前的几篇中,我们大概介绍了如何创建一个asp.net core mvc项目以及http请求如何被路由转交给对应的执行单元.这一篇我们将介绍一下控制器与视图直接的关系. 1. 视图 这里的 ... 
- Atitit.web ui  组件化 vs  mvc
		Atitit.web ui 组件化 vs mvc 组件化 与 mvc并不矛盾..单双方适用的地方有所不同.. React推荐以组件的方式去重新思考UI构成,将UI上每一个功能相对独立的模块定 ... 
- 从DOM操作看Vue&React的前端组件化,顺带补齐React的demo
		前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue ... 
- React Native 之 组件化开发
		前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ... 
- Vue.js:轻量高效的前端组件化方案
		转发一篇尤老师对vue.js的介绍,了解vue.js的来龙去脉.不过现在已经是2.0了,也有添加一些新的东西,当然有些东西也改了. Vue.js:轻量高效的前端组件化方案 Vue.js 是我在2014 ... 
- vue.js组件化开发实践
		前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ... 
随机推荐
- win10 objectarx向导在 vs2015中不起作用的解决办法
			我用autocad2018+vs2015+win10 安装好了objectarx向导模板之后,新建一个c++插件项目就这样: 但是打开之后会创建失败,这个时候就需要更改.props文件里的sdk路径. ... 
- 点击按钮每次都能实现图片的旋转和切换(swift)
			效果如图: 代码如下: // // ViewController.swift // TwoSidedView // // Created by mayl on 2017/12/14. // Copyr ... 
- Python之HTTP静态服务器-面向对象版开发
			利用面向对象的思想完成HTTP静态Web服务器的开发. 主要思路如下: 1.抽象出一个服务器类 1.1 编写类的对象属性 1.2 编写类的方法 注意: 在进行请求资源路径判断时,需要确认请求路径中是否 ... 
- java之扩展运算符
			java中的扩展运算符为+=.-=./=.%=.*= 当使用扩展运算符时,变量在参与赋值运算时会把结果自动强制转换为当前变量的类型,比如: public class Test{ public stat ... 
- MyBatis—resultMap 的关联方式实现多表查询(多 对一)
			mapper 层 a)在 StudentMapper.xml 中定义多表连接查询 SQL 语句, 一次性查到需要的所有数据, 包括对应班级的信息. b)通过<resultMap>定义映射关 ... 
- THML第一天学习!
			又迎来了新一轮的周末,学习的耗时光呀!这周呢学了一点点数据库,暂时还不想写下自己的感受(这学期在 学习数据库,等学期末的时候在总结一下数据库的相关学习). 目前呢,我是打算跟着sunck学习观pyth ... 
- [TimLinux] django html如何实现固定表头
			1. 需求 表格很长,这个时候就希望表格头部不动,而只是表格内容行支持滚动功能. 2. 方法 两张表:一张表(THeader)负责头部字段的显示,另一张表(TBody)负责内容行字段的显示. 两张表都 ... 
- 第4节:Java基础 - 必知必会(中)
			第4节:Java基础 - 必知必会(中) 本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点. 一.抽象类和接口有什么区别 抽象类和接口的主要区别可以总结如下: 抽象 ... 
- CF 17E Palisection  求相交回文串个数
			In an English class Nick had nothing to do at all, and remembered about wonderful strings called pal ... 
- protobuf-rpm
			############################################################## # http://www.rpm.org/max-rpm/ch-rpm-i ... 
