您好,登录后才能下订单哦!
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
提供获取请求数据的属性(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);
提供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);
}
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的封装 |
支持任意类型 | 动态属性 |
l 以_ViewStart.cshtml命名,固定命名,不能更换
l 一般放在视图所在目录的根目录下
l 自动执行,无需手动调用
l 不要在ViewStart中做大量的业务操作
l 以_ViewImports.cshtml命名,固定命名,不能更换
l 只做引入操作(全局命名空间引入)
l 一般放在视图所在目录的根目录下
l 自动执行,无需手动调用
l 不要在ViewStart中做大量的业务操作
引入方式
视图中是可以使用@using关键字引入所需命名空间
通过ViewImport做全局性的命名空间引入,减少页面代码量
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。