控制器Controller

l 命名以Controller结尾

public class TestController : Controller{

public IActionResult SayHelo(){

return Content(“Hello”);

}

}

l 使用ControllerAttribute标注

[Controller]

public class Test : Controller{

public IActionResult SayHelo(){

return Content(“Hello”);

}

}

l 使用NonController标注该类不是控制器

[NonController]

public class TestController : Controller{

public IActionResult SayHelo(){

return Content(“Hello”);

}

}

访问方式(默认路由规则)

域名/{Controller}/{Action}

域名/{控制器类}/{方法}

接受数据

数据形式

l QueryString

www.jqstu.com/test/sayhello?key1=value1&key2=value2

l 表单Form

l 客户端Cookie

l 服务端会话Session

l 头数据Header

HttpRequest是用户请求的对象

提供获取请求数据的属性(Cookie Headers Query Forms)

string value1=Request.Query[‘key1’];

string name=Request.Form[‘name];

string cookiesname=Request.Cookies[‘name];

string cookiesname=Request.Cookies[‘name];

return Content(“Hello”+value1);

HttpContext用户上下文

提供Session熟悉获取Session对象

l Session.set设置

l Session.Remove移除

l Session.TryGetValue获取数据

HttpContext.Session.SetString(“name”,”jqstu”);

HttpContext.Session.Remove(“name”);

string name = HttpContext.Session.GetString(“name”);

HttpContext.Session.SetInt32(“age”,32);

int ? age = HttpContext.Session.GetInt32(“age”);//?代表可空类型数据

数据绑定

把用户请求的数据绑定在控制方法的参数上

绑定规则是请求数据名称和参数名称一致

l 如果查询字符串key名称跟参数一致

l Form表单名称与参数一致

l 查询字符串或表单key的名称和类属性名称保持一致

支持简单类型

public IActionResult SayHelo(string name){

return Content(“Hello”+name);

}

自定义类

public IActionResult SayHelo(TestModel model){

return Content(“Hello”+model.name);

}

public class TestModel(){

Public string Name{get; set;}

}

常见的特性

假如key同时存在不同的数据源,这时候就要运用特性的方式去绑定数据

特性

数据源

FormHeaderAttribute

Headers

FormRouteAttribute

路由数据

FormBodyAttribute

请求体

FormFromAttribute

表单数据

FormQueryAttribute

查询字符串

FormServicesAttribute

服务注册

<form method =”post” action =”/test/postsay?name=zhiqiang”>

<input type =”text” name=”name”/ >

<input type=”submit” value=”提交”/>

<inut type=”button” value=”ajax提交数据” onclick =”postheader()”/>

</form>

<script type=”text/javascript”>

function postheader(){

$.ajax({

url:”/test/ajaxsay?r=”+Math.random(),

beforeSend:function(xhr){

Xhr.setRequestHeader(“name”,”jqstu”);

},

type:”get”,

Success:function(data){

alert(data)

}

});

}

</script>

public IActionResult postsay([FormQuery] string name){

return Content(“Hello”+name);

}

public IActionResult ajaxsay([FormHeader] string name){

return Content(“Hello”+name);

}

视图V

IActionResult动态结果接口

具体实现

l JsonResult:返回JSON结果数据

l RedirectResult:跳转新网址

l FileResult:返回文件

l ViewResult:返回视图页面

l ContentResult:文本内容

返回结果形式的统称

类型

实例化对象

封装方法

JSON结果

JsonResult

Json(object)

跳转

RedirectResult

Redirect(url)

文件

FileResult

File()

视图

ViewResult

View

文本

ContentResult

Content()

JSON数据输出

public IActionResult ReturnJson(){

//JsonResult res = new JsonRult( new {name =”jqstu”});

//return res ;

return Json( new {name =”jqstu”} );

}

View视图输出

public IActionResult ShowView(){

return view();//默认生成/views/Test/showview.cshtml

return view(“~/Views/Test/Index.cshtml”);

}

异步动作结果,在特定环境可以提供程序的性能

特定的网络请求,文件,数据库等等涉及到IO操作使用一下定义方法

public Task<IActionResult > list(){

}

 

数据传递

ViewData

ViewBag

键值对

动态类型

索引器

ViewData的封装

支持任意类型

动态属性

ViewStart

l 以_ViewStart.cshtml命名,固定命名,不能更换

l 一般放在视图所在目录的根目录下

l 自动执行,无需手动调用

l 不要在ViewStart中做大量的业务操作

ViewImport

l 以_ViewImports.cshtml命名,固定命名,不能更换

l 只做引入操作(全局命名空间引入)

l 一般放在视图所在目录的根目录下

l 自动执行,无需手动调用

l 不要在ViewStart中做大量的业务操作

引入方式

视图中是可以使用@using关键字引入所需命名空间

通过ViewImport做全局性的命名空间引入,减少页面代码量

转载于:https://blog.51cto.com/13717297/2136324

asp.net core学习笔记相关推荐

  1. Asp.net core 学习笔记 ( Web Api )

    更新 : 2019-06-03  web api 返回 json 的情况下默认会把属性 PascalCase 变成 camelCase 很贴心哦. 如果你不喜欢可以修改它 services.AddMv ...

  2. Asp.net core 学习笔记 ( ef core )

    更新: 2019-06-12 不小心踩坑 var adidas = new Supplier { name = "adidas" }; Db.Suppliers.Add(adida ...

  3. Nancy in .Net Core学习笔记 - 初识Nancy

    原文:Nancy in .Net Core学习笔记 - 初识Nancy 前言 去年11月份参加了青岛MVP线下活动,会上老MVP衣明志介绍了Nancy, 一直没有系统的学习一下,最近正好有空,就结合. ...

  4. ASP.NET Core学习资源汇总

    ASP.NET Core入门学习资源汇总篇幅比較長,分为七个部分. (一)认识.NET Core (二)Vistual Studio安装.调试 (三)Asp.Net Core入门指南与学习路线 (四) ...

  5. ASP.NET Core学习之路03

    本文章是我听B站杨中科的所做的笔记 杨中科B站视频链接:.NET 6教程,.Net Core 2022视频教程,杨中科主讲_哔哩哔哩_bilibili Identity框架入门 Authenticat ...

  6. ASP.NET Core学习之五 EntityFrameworkCore

    目的:运用EntityFrameworkCore ,使用codefirst开发 一.创建web项目 创建一个不进行身份验证的   ASP.NET Core Web Application (.NET ...

  7. ASP.NET Core学习——7

    多环境 ASP.NET Core介绍了支持在多种环境中管理应用程序行为的改进,如开发(devlopment),预演(staging)和生成(production).环境变量用来指示应用程序正在运行的环 ...

  8. ASP.NET Core学习——6

    依赖注入DI ASP.NET Core的底层设计支持和使用依赖注入.ASP.NET Core应用程序可以利用内置的框架服务将它们注入到启动类的方法中,并且应用程序服务能够配置注入. 1.什么是依赖注入 ...

  9. ASP.NET Core学习——5

    日志(Logging) ASP.NET Core内建支持日志,也允许开发人员轻松切换为他们想用的其他日志框架. 通过dependency-injection请求ILoggerFactory或ILogg ...

最新文章

  1. RedisClient的安装及基本使用
  2. 作业三_C#中的观察者模式解析
  3. 比较ipv6有状态与无状态地址分配工作特点_IPv6环境获取IPV6地址,无状态地址分配,一分钟了解下...
  4. DIV+CSS规范命名集合
  5. leetcode题库124-- 二叉树中的最大路径和
  6. bootstrap - 弹出层
  7. 《Visual Studio Code权威指南》读后总结
  8. 【算法学习笔记】81.动态规划 分类讨论 SJTU OJ 1075 括号匹配升级
  9. 数字图像处理复习记录(一)图像平滑、图像锐化、间隔检测
  10. 倒计时 css,css实现倒计时效果
  11. LSI Logic 1068 SAS 磁盘阵列卡配置教程
  12. 用MLX90614红外温度传感器制作非接触式红外测温仪
  13. python arp断网攻击_局域网arp断网攻击
  14. 判断是否发生塑性变形的条件:von Mises屈服准则
  15. 保险精算--第13周作业
  16. echarts实现自定义扩展地图-中国七大区域图
  17. word中如何设置奇偶页不同的页眉和页脚,怎么从指定页开始加页码
  18. 调光LED RGB色准校准方案
  19. POI点数据获取与NOAA(美国海洋和大气管理局)气象数据获取
  20. 浅谈Masonry的使用技巧

热门文章

  1. FPGA黑金开发板mini版新鲜出炉!!!
  2. (转)VS2005 SP1发布,解决只能创建WebSite,无法创建Web Application项目的问题
  3. python自然语言处理.词性标注
  4. 机器学习基础专题:高斯分布
  5. Linux NAPI/非NAPI
  6. 9.mybatis动态SQL标签的用法
  7. SHELL编程之执行环境----邹立巍的博客
  8. Java NIO 选择器(Selector)的内部实现(poll epoll)
  9. Asp.net Mvc Enum 扩展
  10. 安装华为T2000软件,无法初始化MS SQL 2000问题解决办法