温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

asp.net core学习笔记

发布时间:2020-07-04 22:32:21 来源:网络 阅读:1207 作者:志强1224 栏目:编程语言

控制器Controller

命名以Controller结尾

public class TestController : Controller{

public IActionResult SayHelo(){

return Content(Hello);

}

}

使用ControllerAttribute标注

[Controller]

public class Test : Controller{

public IActionResult SayHelo(){

return Content(Hello);

}

}

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

[NonController]

public class TestController : Controller{

public IActionResult SayHelo(){

return Content(Hello);

}

}

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

域名/{Controller}/{Action}

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

接受数据

数据形式

QueryString

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

表单Form

客户端Cookie

服务端会话Session

头数据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对象

Session.set设置

Session.Remove移除

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);//?代表可空类型数据

 

数据绑定

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

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

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

Form表单名称与参数一致

查询字符串或表单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动态结果接口

具体实现

JsonResult:返回JSON结果数据

RedirectResult:跳转新网址

FileResult:返回文件

ViewResult:返回视图页面

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

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

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

自动执行,无需手动调用

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

 

ViewImport

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

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

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

自动执行,无需手动调用

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

引入方式

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

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI