MVC基础知识整理
ASP.NETMVC框架,这里以MVC5为例,涉及到知识有:Model-View-Controller的使用、Area和Global的理解、路由配置、数据传递的方式、AOP思想的体现(4大过滤器)、各种Result、Razor语法、HttpContext相关的五大对象、分布式图、特性的补充、Html扩展控件、Bundles压缩和js和css的原理、Owin约束、管道模型及MVC的工作原理
ActionResult子类演示
-
ViewResult()->action方法中要想返回视图,则要使用ViewResult(mvc开发中用的最多)
-
ConentResult()->返回内容之用(特点,可以不需要有对应的视图)Home/ContentResultDemo中有示例
-
JsonResult()->HomeController的JsonDemo()可以用作ajax请求,注意:如果get请求,则一定是要在Json()中写入:JsonRequestBehavio.AllowGet
-
FileResult()->HomeController的FileResultDemo()可以用作画验证码,也可以利用它来实现文件的下载
-
HttpStatusCodeResult()->用户自己设置需要响应的状态码
-
JavaScriptResult 注意:JavaScript配合视图中的<script rc="">
7、RedirectResult():执行页面跳转本质上是在响应报文头中产生了 Location:要跳转的页面的虚拟路径 命令
8、RedirectToRouteResult :当系统中路由规则比较多的时候,可以由程序员指定使用哪个路由规则来生成url
MVC路由
/路由支持默认值 如下的Api
routes.MapRoute(
name: "Default",
url: "Api/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
//通过正则确定参数的类型
,constraints:new {id="\\d+"},
//定义了此路由的命名空间
namespaces: new string[] { "MVCRoute.Controllers" }
//好处:
//1、可以自动去MVC站点的bin目录查找指定命名空间下的控制器类,大大节省了查 找时间,效率更优
//2、方便同一个路由规则在不同控制器之间的切换
//忽略路由
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//忽略某一种拓展资源或拓展名
routes.IgnoreRoute("{resource}.do/{*pathInfo}");