摘要:
首先安装一个Ubuntu14.04的虚拟机用来安装Redis。Ubuntu的Unity在虚拟机里面卡爆了,可以通过如下方法安装传统的Gnome界面:sudo aptitude install gnome-session-fallback安装完成之后可以在登录的地方选择Gnome界面。Redis的编译... 阅读全文
摘要:
ASP.NET MVC 3支持两大类型的验证:服务端和客户端脚本验证。本文先介绍服务端验证。在前文也介绍过,服务器端的验证是发生在模型绑定的时候,在DefaultModelBinder中有如下方法会触发验证:internal void BindComplexElementalModel(Contro... 阅读全文
摘要:
目前前端页面和服务端进行Ajax交互大多采用的都是jQuery, ASP.NET MVC提供了一些方法使得这个过程变得更加容易。常见的Ajax应用场景有两种,一个是点击一个链接,然后局部加载一些内容,可以是html片段,也可能是json数据,然后通过前端js处理之后显示;另一个是异步提交表单。这些帮... 阅读全文
摘要:
Knockoutjs是一个JavaScript实现的MVVM框架。主要有如下几个功能:1. Declarative bindings2. Observables and dependency tracking3. Templating它对于分离前台的业务逻辑和视图简化数据绑定过程有显著的作用。闲言少... 阅读全文
摘要:
这部分的内容和前面的MVC页面的生命周期关系不是太紧密,但在开发中也是十分重要的部分,它可以帮助方便生成合适的html,包括自动填充model的值到表单中,这可以使得通过表单提交的数据在提交页面之后不会丢失,这在asp.net web form中是通过viewstate来实现的,asp.net mv... 阅读全文
摘要:
书再接回上文Filter和Action的执行 ,当Action方法被执行,返回了一个ActionResult之后,紧接着就要执行ActionResult了,当然还有Filter需要执行,这些都是发生在ControllerActionInvoker的InvokeActionResultWithFilters方法之中,这里面filter的执行和action方法被执行的时候执行相应的filter是一样的... 阅读全文
摘要:
Dynamic Query是一个支持动态Entity Framework查询的库。它的设计初衷是为了减少在管理系统中大量出现的对一个数据集进行查找、排序、分页的这类场景的开发工作量,其设计思想是”markup is code ”。通过在View上编写具有语义信息的标签,来实现这类常见的功能需求,而不再需要额外的代码。它不是一个完整的ORM,是基于Entity Framework的,因此开发者仍然可以利用Entity Framework提供的大量特性,和现有的EF项目保持兼容。 Dynamic Query分为两个部分,其中之一是一个查询接口,这是一个IQueryable<T>的扩展方 阅读全文
摘要:
在Filter和Action的执行 中说到,ControllerActionInvoker对象在InvokeAction方法中调用了GetParameters方法实现了model binding,先来看下这个方法: protected virtual IDictionary<string, object> GetParameterValues(ControllerContext controll... 阅读全文
摘要:
在上文中,谈到在action方法被执行的过程中,调用了ControllerActionInvoker的GetParameterValues方法来获得action的参数,上文没有细谈,在这个方法里面,实现了ASP.NET MVC的Model Binding功能。ASP.NET的Model Binding主要有两个接口组成,分别是: public interface IModelBinder... 阅读全文
摘要:
上文说到根据controller的名字正确的实例化了一个controller对象。回到MVCHandler的BeginProcessRequest方法,可以看到,当得到controller对象之后,首先判断它是不是IAsyncController,如果是则会创建委托用来异步执行。通常情况下,我们都是继承自Controller类,这不是一个IAsyncController,于是会直接执行Contro... 阅读全文