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的类型,然后循环输出数据


这里把多余的引用去掉

最新文章

  1. 02 button的练习
  2. kettle启动“Error: could not create the Java Virtual Machine”
  3. 虚拟机下玩DXF
  4. 传说中的WeixinJSBridge和微信rest接口
  5. 【leetcode❤python】Sum Of Two Number
  6. IOS开发问题录:如何在Swift中引入Head文件?
  7. [OC Foundation框架 - 20] 统计代码行数
  8. 用到的IOS知识点小结(1)
  9. Could not find class 'XXX.activity‘', referenced from method 'YYYY'
  10. 2.PHP 教程_PHP 安装
  11. Oracle分区知识
  12. 在Windows环境下使用MinGW编译Qt 4.8.6
  13. 基于Flash与window平台本地程序通信实现媒体流发布
  14. R 包 安装 卸载 查看版本
  15. Linux Shell 1 - Print from terminal
  16. 史上最全的FTP网址
  17. 【Gcd】
  18. android studio Authentication failed for
  19. C# 例子1
  20. spring cloud学习(六)Spring Cloud Config

热门文章

  1. flask的debug模式下,网页输入pin码进行调试
  2. SolidEdge 如何由装配图快速进行标注和零件序号编写 制作BOM表
  3. 与linux相处的日子里
  4. C语言printf()函数具体解释和安全隐患
  5. 程序的载入和运行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25
  6. Android OpenGL ES(六)----进入三维在代码中创建投影矩阵和旋转矩阵
  7. Linux上Libevent的安装
  8. coco2d-x 3.0游戏实例学习笔记 《跑酷》 第二步---游戏界面&全新的3.0物理世界
  9. VB.NE总结
  10. word2vec学习 spark版