随笔分类 - MVC5实战
少年我看你骨骼精奇,这里有一系列MVC5博文收好。.Net由你传承
摘要:ActionMethodSelectorAttribute 其实微软对方法的起名都比较规范和通俗易懂的,从名字上来看就知道这是方法选择器 我们在action上加上 HttpGet、HttpPost 、AcceptVerbs就可控制我们的action只能被什么方式请求到。f12转到定义可以看到这些At
阅读全文
摘要:Filter拦截器 Aop是MVC的主要设计方式之一,而微软也希望我们在使用MVC的时候更好的使用拦截器来进行切面编程。拦截器则是Mvc中的一大亮点与重点 AOP(面向切面)编程已经广泛应用在各个项目中,切面编程把我们的action切出了执行前与执行后或者是特定的需求比如异常发生时。让我们可以在切面中从容的完成记日志、检查权限等操作。在action中开发人员只需要关于核心业务。 可以看到Contr...
阅读全文
摘要:源码解析 模型验证几乎在大部分的项目中都在被使用,这方面的博文教程也很多,关于那些更详细的模型验证这里就不多赘述了,主要讲解内部是如何进行验证的。 在前几篇博文中提到了DefaultModelBinder参数的获取及绑定就是在这个时候完成的 在绑定复杂类型(模型) 的时候,会调用OnModelUpdated方法,这个方法就是对模型的参数进行验证的 可以看到,这里先是拿到所有的验证,然后循...
阅读全文
摘要:模型绑定器 之前或多或少也提到过模型绑定器,方法的形参就是由模型绑定器把参数绑定上去的,今天就说说ModuleBingder那点事 在MVC中有一个接口叫IModuleBinder // // 摘要: // Defines the method that is required for a model binder. public interface IModelB...
阅读全文
摘要:ControllerDescriptor、ActionDescriptor、ParmaterDescriptor 看名字一脸懵逼,这是做什么的呢?可别小看它们,它们在MVC中扮演着尤为重要的角色。 思考 ,我们在MVC中可以用各种好用的预定义特性(attribute)来实现很棒的功能,例如HttpP
阅读全文
摘要:MVC中Contoller与视图的数据传输 后台的值显示到界面上,我们有几种方式呢。MVC给我们提供了ViewData、ViewBag、TempData、Model这几种方式,当然我们也可以用ajax获取, 本文对前三种进行源码上的分析。 ViewData ViewData是一个ViewDataDi
阅读全文
摘要:统一的数据获取 在WebForm时代,我们是怎么获取值的呢? HttpContext.Request.QueryString HttpContext.Request.Form HttpContext.Request.Files 当然,也可以直接使用HttpContext.Request[] 的方式统一获取。因为内部把这几种获取方式都走了一遍 而在MVC中我们是如果获取值的呢 在action中我们...
阅读全文
摘要:视图帮助类 HtmlHelper HtmlHelper给我们封装了大量的常用方法,使我们的开发更具高效。那么其中有哪里是我们常用的呢? BingForm 生成form表单 上图简单的使用了Html.BeginForm,就生成了一个表单。当然只会使用是不够的,还需要知道一下原理。下面进入BegForm
阅读全文
摘要:View结构 其实给我们提供了官方的MvcDemo,就是在我们直接去新建一个不为空的MVC项目。 这里就是一个MVC的Demo了,可以看一下这个Demo中View的结构是什么 上图可以发现,有一个Shared(共享)文件夹,先从这个文件夹看起,下图可以看到,里面分别有_Layout.cshtml,_
阅读全文
摘要:ViewResult 之前已经分析了很多个Result,但是并没有分析我们最常用的ViewResult。因为它牵扯到了Razor引擎,所以需要单独的拿出来去讲。 之前在学习的时候,老师总会和我们说当你的功力达到一定地步的时候回答别人的问题,你就可以用一切皆对象去回答。这真的很装逼。那么问题来了。MVC中的视图是cshtml,代码也是一些html标签。那么它是什么? 引用上面的一切皆对象,它是一...
阅读全文
摘要:众多的Result 使用MVC进行开发,可以看到有ActionResult、ContentReuslt、JsonResult..等,今天对这些Result进行背后分析。它到底是如何做到的 ActionResult 在开发中大家都会遇到一个有趣的现象,使用ActionResult做返回类型,我们可以返回Json,View,Content及其它的Result, 为什么会做到这样呢? 分析一下,我们使...
阅读全文
摘要:自定义Modue与Hander 之前讲了管道流中的Module与Hndler。现在我们可以去自定义Module和Handler Module 其实很简单,一共需要三个步骤 定义一个类去继承IHttpModule。并实现接口,这里推荐类以Module结尾 在Init方法中注册我们所需要的事件,完成拦截器。 在WebConfig的System.webServer节点中配置Modules Hand...
阅读全文
摘要:MVC5 和WebForm的区别 WebForm是一个Page贯穿了一个.CS代码。 1对1 = 耦合在一起 MVC在Controller中将 bihind和page进行了分离。 多对多 = 松耦合 对于MVC来说是通过action返回相应的View VS的调用堆栈 Http管道的大致流程 Pipe
阅读全文

浙公网安备 33010602011771号