asp.net core学习笔记
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}
域名/{控制器类}/{方法}
接受数据数据形式
lQueryString
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对象
lSession.set设置
lSession.Remove移除
lSession.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名称跟参数一致
lForm表单名称与参数一致
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);
}
视图VIActionResult动态结果接口
具体实现
lJsonResult:返回JSON结果数据
lRedirectResult:跳转新网址
lFileResult:返回文件
lViewResult:返回视图页面
lContentResult:文本内容
返回结果形式的统称
类型
实例化对象
封装方法
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的封装
支持任意类型
动态属性
ViewStartl以_ViewStart.cshtml命名,固定命名,不能更换
l一般放在视图所在目录的根目录下
l自动执行,无需手动调用
l不要在ViewStart中做大量的业务操作
ViewImportl以_ViewImports.cshtml命名,固定命名,不能更换
l只做引入操作(全局命名空间引入)
l一般放在视图所在目录的根目录下
l自动执行,无需手动调用
l不要在ViewStart中做大量的业务操作
引入方式
视图中是可以使用@using关键字引入所需命名空间
通过ViewImport做全局性的命名空间引入,减少页面代码量
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。