ASP.NET CORE 自定义视图组件(ViewComponent)注意事项
*红色字体为固定命名,蓝色为一般命名规则,黄色为ASP.NET CORE 默认查找文件名
概要:1.简单ViewComponent的用法
2.ViewComponent控制器返回值
3.注意事项
1.简单ViewComponent的用法
第一步:创建ASP.NET CORE Web应用程序,并在网站根目录创建 ViewComponents 文件夹
第二部:在ViewComponents文件夹中新建视图组件的控制器, 这儿我命名为 OnePartViewComponent 。 然后编辑该类,继承ViewComponent,实现InvokeAsync()或Invoke()方法
using Microsoft.AspNetCore.Mvc; namespace AspCoreTest.ViewComponents
{
public class OnePartViewComponent : ViewComponent
{
//public async Task<IViewComponentResult> InvokeAsync()
public IViewComponentResult Invoke()
{
ViewData["Msg"] = "别看了,我就是分布视图"; return View();
}
}
}
第三步:创建视图
在Views文件夹下新建 Components 文件夹,在该Components文件夹下建 OnePart 文件夹, 接着在该OnePart文件夹下建视图页 Default.cshtml。暂且一行代码
<h1>@ViewData["Msg"]</h1>
到此一个简单的视图组件也就创建完了
第四部:在其他页面插入我们创建的这个视图组件,这儿我选择VS自动创建的 About 页面作为演示
@{
ViewData["Title"] = "About";
}
<h2>@ViewData["Title"].</h2>
@await Component.InvokeAsync("OnePart")
<h3>@ViewData["Message"]</h3>
<p>Use this area to provide additional information.</p>
F5运行,点击About,转到About页面:

2.视图组件的控制器返回值
对于正式使用,可能会还会用到Model,在ViewComponent控制器中返回一个model。model文件夹并无明确要求,对视图组件来说,一般放在 ViewModels 文件夹下,在ViewModels 文件夹下新建 OnePart.class
namespace AspCoreTest.ViewModels
{
public class OnePart
{
/// <summary>
/// 姓名
/// </summary>
public string name { get; set; } /// <summary>
/// 性别
/// </summary>
public string sex { get; set; }
}
}
在控制器中使用该Model处理数据,并返回给视图
using Microsoft.AspNetCore.Mvc;
using AspCoreTest.ViewModels; namespace AspCoreTest.ViewComponents
{
public class OnePartViewComponent : ViewComponent
{
//public async Task<IViewComponentResult> InvokeAsync()
public IViewComponentResult Invoke()
{
ViewData["Msg"] = "别看了,我就是分布视图"; OnePart onePart = new OnePart();//声明model
//数据处理
onePart.name = "Runing";
onePart.sex = "男"; //返回model
return View(onePart);
}
}
}
在视图中使用model的数据
@using AspCoreTest.ViewModels
@model OnePart <h1>@ViewData["Msg"]</h1> <table>
<tr>
<td>姓名</td>
<td>性别</td>
</tr>
<tr>
<td>@Model.name</td>
<td>@Model.sex</td>
</tr>
</table>
OK,视图组件中使用Model大致流程就是这样,是不是感觉很简单

3.注意事项总结
a.固定命名规则:
文件夹:控制器文件夹 ViewComponents,
视图文件夹有两种选择:1.某个控制器(如:Home)专用的视图组件 {Home}/Components/{ViewComponent}/
2.全局的视图组件 Shared/Components/{ViewComponent}/
控制器:名 + ViewComponent
视图:Default.cshtml为默认查找的视图,若自定义视图名,在需要在ViewComponent控制器中返回时指定该视图即可
return View("MyView");
b.视图组件控制器中 Invoke()、InvokeAsunc()两个方法必须有且仅能有一个
ASP.NET CORE 自定义视图组件(ViewComponent)注意事项的更多相关文章
- .Net Core使用视图组件(ViewComponent)封装表单文本框控件
实例程序的界面效果如下图所示: 在表单中的搜索条件有姓名,学号,成绩.他们在一行中按照水平三等分排列. 在cshtml中用html实现上述表单效果的的代码如下: <form class=&quo ...
- ASP.NET Core Razor 视图组件
视图组件简介 在新的ASP.NET Core MVC中,视图组件类似于局部视图,但它们更强大.视图组件不使用模型绑定,仅依赖于您在调用时提供的数据. 视图组件特性: 呈现页面响应的某一部分而不是整个响 ...
- Asp.Net core 视图组件ViewComponent
视图组件 ViewComponent 最近用了一下视图组件,还挺方便的,如果遇到公共的部分,可以抽出来,写成视图组件,方便调用 先上图看一下效果:比如首页的4个画红框的地方是4个模块,有些地方可能要重 ...
- ASP.NET Core MVC 视图
ASP.NET Core MVC中视图的知识和ASP.NET MVC有很多相似之处,学习难度较低.以下内容主要体现了编程中模块化的思想,模块化才应是我们关注的重点. Layout 布局用于提供各个页面 ...
- ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...
- ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...
- asp.net core 自定义认证方式--请求头认证
asp.net core 自定义认证方式--请求头认证 Intro 最近开始真正的实践了一些网关的东西,最近写几篇文章分享一下我的实践以及遇到的问题. 本文主要介绍网关后面的服务如何进行认证. 解决思 ...
- ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MV ...
- asp.net core自定义端口
asp.net Core 自定义端口 官方文档 aspnet内库源码: https://github.com/aspnet dotnet系统内库源码:https://github.com/dotnet ...
随机推荐
- Health Check - 每天5分钟玩转 Docker 容器技术(142)
强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精 ...
- SLIC superpixel算法
标题 SLIC superpixel算法 作者 YangZheng 联系方式 263693992 SLIC算法是simple linear iterative cluster的简称,该算法用来生成超像 ...
- LAMP基础
前言:上一篇博文,说到了URL.http的协议.事务以及私有https的实现.此次 一. 概念: LAMP: a:apache m:mariadb,mysql p:php,perl,python 二. ...
- 微信小程序-weui实例代码提取
搜索框 对应代码如下: wxss文件 <view class="page"> <view class="page__hd"> <v ...
- python web开发-flask调试模式
使用run()方式可以启动flask应用,但是每次修改代码之后,需要重新启动,这样对于调试就很不太方便.Flask的调试模式可以让代码在每次修改之后自动载入. 有两种方法可以启用flask的调试模式 ...
- windows xp/7/8/8.1/10安全模式详解和系统修复讲解
如果你的电脑因为各种原因(强关电脑等原因导致的电脑蓝屏,或者引导文件受损等)开不了机,进不了电脑桌面,那么就可以看看我这篇文章了. 先贴上百度百科,说得挺好的.最下面有我贴的图片操作过程详解. 百度百 ...
- 二叉搜索树(Java实现)
二叉搜索树基本操作 求树中的结点个数 判断节点是否为空 向树中插入新结点key-value 树中是否存在key 返回树中key对应的value值 先序遍历 中序遍历 后续遍历 层序遍历 求树中key最 ...
- C++环境搭建与atom编译器编译C++
Windows下安装 方法一--VS: 使用windows开发神器visio studio.这种方法比较简单,直接下载一个最新的vs安装就行.不单单是C++,C.C#.VB等都可以开发. 方法二--只 ...
- Kotlin——从无到有系列之高级篇(一):Lambda表达式
如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索 QQ群号:497071402 进入正题 经过前面一系列对K ...
- postman简单教程-环境变量,全局变量的设置及作用
讲postman环境变量设置之前,先讲一个小插曲,环境变量.全局变量的区别在于Globals,只能用一组,而Environmen可以设置多组,所以我更喜欢设置环境变量 1.环境变量-Environme ...