在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.控制器 Controller接收用户请求,将Model和View匹配在一起,共同完成用户请求。它是一个分发器,通过选择不同的Model、View,可以决定完成不同的用户请求。 但Controller并不做任何的数据处理,只把用户的信息传递给模型,告诉Model做什么,选择符合要求的View返回给用户。 2.Controller处理请求的流程 3.ControllerBase类
4.Controller类 除了从ControllerBase类继承的方法,Controller类还有以下几个主要的方法: 1)Content 2).File方法 3).Json方法 4).PartialView方法 5).Redirect方法 6).View方法 7).JavaScript方法 用来返回可在客户端执行的脚本 5.ViewData与ViewBag的区别
6.TempData(可以跨Action传递,且只传递一次)
7.返回类型 返回类型都继承自抽象类ActionResult //方法1: ViewResult作为返回类型 public ViewResult Index() { return View(); } //方法二: ViewResultBase作为返回类型 public ViewResultBase Index() { return View(); } //方法三: ActionResult作为返回类型 public ActionResult Index() { return View(); } public EmptyResult Index() { return null; } //方法1:ContentResult作为返回类型 public ContentResult Index() { return Content("Hello World"); } //方法2:ActionResult作为返回类型 public ActionResult Index() { return Content("Hello World"); } public JsonResult jsonResult() { TechInfoCompanay jsonCompany=new TechInfoCompanay(){id="S001",CompanyName="信息科技有限公司"}; return Json(jsonCompany,JsonRequestBehavior.AllowGet); } //定义一个公司类 public class TechInfoCompanay { public string id { set; get; } public string CompanyName { set; get; } } //方法1:RedirectResult作返回类型 public RedirectResult redirectResult() { return Redirect("https://www.google.com.hk/");//具体的URL } //方法1: ActionResult作返回类型 public ActionResult redirectResult() { return Redirect("https://www.google.com.hk/");//具体的URL } public ActionResult redirectResult() { return Redirect("https://www.google.com.hk/");//具体的URL } public RedirectToRouteResult redirectToRouteResult() { return RedirectToAction("Index"); } 8.异步控制器 在异步调用的过程中,服务器在等待第一个请求完成的过程中不会阻塞对其他请求的响应。 因此,当有许多请求调用长时间运行的操作时,异步请求可以防止出现请求排队的情况。 #region 1、异步请求 [AsyncTimeout(1000)] public async Task<ActionResult> Index() { var data = await GetPageTaskAsync("http://163.com"); return data; } public async Task<ActionResult> GetPageTaskAsync(string url) { try { using (var client = new HttpClient()) { await Task.Delay(3000); var fetchTextTask = client.GetStringAsync(url); return Json(new { fetchText = await fetchTextTask,error="NO" },JsonRequestBehavior.AllowGet); } } catch (WebException ex) { throw ex; } } #endregion 9.行为过滤器
10.自定义行为过滤器 OnActionExecuting: 在方法执行之前执行 OnActionExecuted: 方法的逻辑代码执行完成之后触发 OnResultExecuting: 方法在准备放回结果的时候触发 OnResultExecuted:方法返回结果之后触发 public class MyActionFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { //执行Action之前 } public override void OnResultExecuted(ResultExecutedContext filterContext) { //执行Action之后 } } 在需要的Action上面加上验证 public class HomeController : Controller { [Filters.MyActionFilter] public ActionResult Index() { return View(); } } 从源码的角度理解各种Result
其他学习教程:http://www.cnblogs.com/soaeon/p/5635144.html
|
请发表评论