ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View
Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法
返回的对象要求实现了IActionResult接口
继承父类,并引入命名空间
写this点就出现很多东西,这些就是上下文的信息。
这就获取了Controller的名字
action的name
还有一个我们熟悉的对象HttpContext对象
可以看request的Body或者Header等等的一些信息
也可以操作ResponseWrite,但是不建议这么做
不建议在Controller里面直接访问HttpContext对象,不利于单元测试
可以return OK方法
F12查看OK的源码
还封装了返回文件的方法,也实现了IActionResult接口
还可以使用this.Content返回一串文字
然后修改Action的返回类型为IActionResult
F12进去可以看到实际的返回类型为ContentResult
Action决定要做什么事,真正做这个事的是MVC框架
使用IactionResult更灵活,更利于扩展
简历model文件夹,并新建类Student类
ObjectResult返回实体对象
Controller把这个学生的信息放在ObjectResult里面,到底怎么处置这个ObjectResult是有管道里的其他环节来处理的
预览,浏览器里面返回的是Json结果
Action返回视图
viewRresult可以附带一个model对象,视图可以使用model来创建html
View()的返回结果是ViewResult
运行起来发生错误,这里没有找到对应的cshtml页面
如果View啥都写就会找对应的Action名字的视图文件,
我们在View里面写个Student
运行效果,它就会去找Student.cshtml页面
建立:View/Home/Index.cshtml文件
运行效果
把st作为参数返回给view
有一个特殊的变量,@Model使用这个变量来访问传过来的Model对象
@Model就表示从Action的View传过来的对象
指定@Model的具体类型,现在是个dynamic的类型
也是为了写代码的时候有只能提示
使用一个指令让@Model有只能提示
这里用消息的@model它是一个指令。大写的@Model是传过来的对象,这两个容易混淆
这个指令可以提供一些信息
用小写的model来告诉大写Model它的类型
这样直接把属性的字段可以点出来了
运行结果
新建文件夹Services/下面新建文件IRepository.cs
现在的数据类型是Student,以后可能是其他的类型,所以这里使用泛型
这是一个接口
建立实现类,因为我们是写死的数据
,所以叫做InMemeryRepository
实现接口传入Student类型
创建三条学生的数据
注册服务
这里使用AddScope。表示每次Http请求会产生新的实例
Controller里面构造函数注入
这是ReSharper的插件的快捷方式
view页面指定model的类型,然后循环输出数据
这里把多余的引用去掉
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View的更多相关文章
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器
在MVC的请求管道 并不是 asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 02. Web Host 的默认配置
视频地址: https://www.bilibili.com/video/av38392956/?p=2 语雀 https://www.yuque.com/yuejiangliu/dotnet/ixt ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下
ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 04. 中间件
注册startup类可以配置我们web应用的启动逻辑,使用的就是UseStartUp方法,asp.net core就会实例化这个类 并调用startup类里面的两个方法ConfigureService ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库
前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps
VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 01. 创建项目 +项目结构和配置简介
新建项目:Tutotial.Web 解决方案名称可以把web去掉 视频里面把git这个选项勾选了.我就不勾选了 dotnet CLI创建项目 首先必须安装好了.net Core的SDK dotnet ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 05.Controller 的路由
视频地址: https://www.bilibili.com/video/av38392956/?p=5 这里面就包含了MVC相关的库 可以通过打开右侧的Nuget库进行查看 这里修改下 ,只需要静态 ...
随机推荐
- 【面试 spring】【第七篇】spring的问题
1.spring你熟悉么?两大特色 spring 主要有IOC和AOP两大特色. =========================================================== ...
- 改动Xmodem/Zmodem上传下载路径
SecureCRT能够使用Xmodem/Zmodem方便的上传和下载文件. 在Session ptions =>Xmodem/Zmodem => Directories中设置 选项=& ...
- 安装 python 的 pip install fabric 库 问题
安装 pip install fabric 安装依赖需要 gcc 并且不能单独的安装gcc 还要安装完整的gcc依赖 yum -y install gcc gcc-c++ kernel-devel y ...
- CentOS安装Openfire服务
原文::http://xiao987334176.blog.51cto.com/2202382/979677 系统是全新新安装的系统.版本号是Centos 5.6 x86 同步北京时间 # ntpda ...
- PHP中文分词扩展 SCWS
1.scws简单介绍 SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统). 这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中 ...
- HTML URL编码规则
将空格转换为加号(+) 对0-9,a-z,A-Z之间的字符保持不变 对于所有其他的字符,用这个字符的当前字符集编码在内存中的十六进制格式表示,并在每个字节前加上一个百分号(%).如字符“+”用%2B表 ...
- mysql 查询正在执行的事务以及等待锁 常用的sql语句
使用navicat测试学习: 首先使用set autocommit = 0;(取消自动提交,则当执行语句commit或者rollback执行提交事务或者回滚) 在打开一个执行update查询 正在 ...
- 查询历史使用过的命令并使用(history)
一.什么是history 在bash功能中.它能记忆使用过的命令,这个功能最大的优点就是能够查询以前做过的举动.从而能够知道你的执行步骤.那么就能够追踪你曾下达过的命令.以作为除错的工具. 二.His ...
- Thread Runnable 区别
[线程的并发与并行] 在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(co ...
- 将线上服务器生成的日志信息实时导入kafka,采用agent和collector分层传输,app的数据通过thrift传给agent,agent通过avro sink将数据发给collector,collector将数据汇集后,发送给kafka
记flume部署过程中遇到的问题以及解决方法(持续更新) - CSDN博客 https://blog.csdn.net/lijinqi1987/article/details/77449889 现将调 ...