*红色字体为固定命名,蓝色为一般命名规则,黄色为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)注意事项的更多相关文章

  1. .Net Core使用视图组件(ViewComponent)封装表单文本框控件

    实例程序的界面效果如下图所示: 在表单中的搜索条件有姓名,学号,成绩.他们在一行中按照水平三等分排列. 在cshtml中用html实现上述表单效果的的代码如下: <form class=&quo ...

  2. ASP.NET Core Razor 视图组件

    视图组件简介 在新的ASP.NET Core MVC中,视图组件类似于局部视图,但它们更强大.视图组件不使用模型绑定,仅依赖于您在调用时提供的数据. 视图组件特性: 呈现页面响应的某一部分而不是整个响 ...

  3. Asp.Net core 视图组件ViewComponent

    视图组件 ViewComponent 最近用了一下视图组件,还挺方便的,如果遇到公共的部分,可以抽出来,写成视图组件,方便调用 先上图看一下效果:比如首页的4个画红框的地方是4个模块,有些地方可能要重 ...

  4. ASP.NET Core MVC 视图

    ASP.NET Core MVC中视图的知识和ASP.NET MVC有很多相似之处,学习难度较低.以下内容主要体现了编程中模块化的思想,模块化才应是我们关注的重点. Layout 布局用于提供各个页面 ...

  5. ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...

  6. ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...

  7. asp.net core 自定义认证方式--请求头认证

    asp.net core 自定义认证方式--请求头认证 Intro 最近开始真正的实践了一些网关的东西,最近写几篇文章分享一下我的实践以及遇到的问题. 本文主要介绍网关后面的服务如何进行认证. 解决思 ...

  8. ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MV ...

  9. asp.net core自定义端口

    asp.net Core 自定义端口 官方文档 aspnet内库源码: https://github.com/aspnet dotnet系统内库源码:https://github.com/dotnet ...

随机推荐

  1. Gradle下载 Jar 包

    使用此方法下载Jar包的前提是已经配置好了Gradle的环境了,配置好的标志是在终端输入gradle不提示command not found. 1. 编写build.gradle文件代码: apply ...

  2. PAT乙级-1047. 编程团体赛(20)

    编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...

  3. ubuntu16.04下安装windows10(傻瓜式)

    参考如下博文,首先利用ubuntu的16.04的启动U盘,对原有的系统的磁盘分出一个区来,并使用gparted工具格式化为nyfs格式 http://blog.csdn.net/oct11/artic ...

  4. RESTful接口设计原则和优点

    RESTful架构优点: 前后端分离,减少流量 安全问题集中在接口上,由于接受json格式,防止了注入型等安全问题 前端无关化,后端只负责数据处理,前端表现方式可以是任何前端语言(android,io ...

  5. Intellij +Maven 报错: Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.

    在intellij使用 Maven Project 测试时,运行test时看到log里的报错信息: -Dmaven.multiModuleProjectDirectory system propert ...

  6. Android 的自动化测试资源

    环境预备阶段: win7下jdk+eclipse android应用开发环境建立 android genymotion模拟器怎么使用以及和google提供的模拟器性能对比

  7. EventBus VS Spring Event

    EventBus VS Spring Event 本地异步处理,采用事件机制 可以使 代码解耦,更易读.事件机制实现模式是 观察者模式(或发布订阅模式),主要分为三部分:发布者.监听者.事件. Gua ...

  8. neo智能合约的生命周期

  9. mui底部导航栏切换分页

    使用Hbuilder的mui框架开发移动端非常便利.高效: 底部导航栏切换功能也是移动APP开发中必须实现的: 引入mui文件.下面会用到jquery,同时引进 <link href=" ...

  10. 一个类似抖音 APP 拍摄按钮效果的控件

    TouchButton 一个类似抖音 APP 拍摄按钮效果的控件 效果图预览 用法 <net.angrycode.library.TouchButton android:id="@+i ...