摘要:
一、概述 本节来看一下ASP.NET MVC【View的呈现】的内容,View的呈现是在Action执行之后进行,Action的执行生成一个ActionResult,【View的呈现】的功能就是:通过InvokeActionResult方法对【Action的执行】中生成的ActionResult进行处理。(ActionResult泛指那些继承自抽象类System.Web.Mvc.ActonResult的类的实例) 为了会纵观【View的呈现】在全局中的位置,下面我们再来回顾下处理请求的整个流程:在此系列开篇的时候介绍了MVC的生命周期, 对于ASP.NET和ASP.NET MVC,都是将相.. 阅读全文
摘要:
概述IEnumerable和IEnumerator接口存在的意义:用来实现迭代的功能! public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); }迭代的原理首先来说一下集合实现的原理:对于ArrayList、List等集合,类中有一个私有的数组类型字段,向集合中添加数... 阅读全文
摘要:
一、概述 上篇博文《白话学习MVC(七)Action的执行一》介绍了ASP.NET MVC中Action的执行的简要流程,并且对TempData的运行机制进行了详细的分析,本篇来分析上一篇中遗留的【3-2、ActionInvoker.InvokeAction(ControllerContext, actionName)】部分的内容,其中包含了Action的执行、过滤器的执行、View的呈现(下节介绍)。public abstract class Controller : ControllerBase, IActionFilter, IAuthorizationFilter, IDisposa. 阅读全文
摘要:
一、概述 在此系列开篇的时候介绍了MVC的生命周期, 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理。对于MVC来说,请求是先 经过路由系统,然后由一个MvcHandler来处理的,当请求到来时,执行此MvcHandler的ProcessRequest方法(因为已将 MvcHandler类的ProcessRequest方法注册到HttpApplication的事件中,所以事件的执行就触发了此方法)。详细请看之前介绍MVC生命周期的两篇博客。 下面我们就以MVC声明周期为主线,来分析下MVC源码public class .. 阅读全文
摘要:
一、什么是模型绑定? 模型绑定存在的意义就是为Action的参数提供值,例如:如下表单中提交了数据,那么Action(即:Index)的参数Id,Name的值就是表单中对应的name属性相同的值,而表单提交的值是如何赋值给Action的参数的呢?模型绑定就是来完成从用户提交的请求中提取数据,并赋值给Action的参数。此例是从表单中的提取数据,并赋值给Action的参数,模型绑定还可以完成完成从地址Url、路由Route、上传文件等中获取数据,并赋值给Action相应的参数。 UserName: PassWord: [HttpPost]//注意:参数名必须要... 阅读全文
摘要:
一、概述 在此系列开篇的时候介绍了MVC的生命周期, 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理。对于MVC来说,请求是先 经过路由系统,然后由一个MvcHandler来处理的,当请求到来时,执行此MvcHandler的ProcessRequest方法(因为已将 MvcHandler类的ProcessRequest方法注册到HttpApplication的事件中,所以事件的执行就触发了此方法)。详细请看之前介绍MVC生命周期的两篇博客。 下面我们就以MVC声明周期为主线,来分析下MVC源码public class .. 阅读全文
摘要:
SELECT @temp = ISNULL(point, 0) FROM dbo.User where Nid=6如果User表中的point字段为null的话,则对@temp赋值0 阅读全文
摘要:
Object model=Assembly.Load(“程序集”).CreateInstance(命名空间.类名);object obj2 = Type.GetType("MyClass").GetMethod("Add").Invoke(obj,null);obj2是返回值Activator.CreateInstance会调用dll中类的构造函数,如果你的类里面没有提供无参的构造函数Assembly_Assembly=Assembly.Load("程序集名");Type_Type=_Assembly.GetType("完整 阅读全文
摘要:
之前在程序中用到事务时,都是在存储过程中创建事务来对数据进行控制,其实在C#中也有事务类。1、DbTransaction类对数据库访问添加事务,它是对数据库事务操作的基类,继承此类的有: System.Object System.MarshalByRefObject System.Data.Common.DbTransaction System.Data.EntityClient.EntityTransaction System.Data.Odbc.OdbcTransaction System.Data.OleDb.OleDbTransaction Syst... 阅读全文
摘要:
建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(过程是稳定的)。从建造者模式的定义来看,肯定是一头雾水,说的都是什么跟什么呀!举个小例来理解下:当我们来实现一个画画的功能,要求画瘦的人和胖的人。画的过程是稳定的,即:头、胳膊、身体、腿都是必须的。而画的具体实现是不一样的,例如:头大、肚子大、腿长等。这时再去理解建造者模式的定义就简单多了。UML图:Builder抽象类中定义各个部分的方法的抽象方法(例:定义了画胳膊、画头、画腿等方法)。ConcreteBuilder类是各种不一样具体表示,它具体实现了Builder中的方法,并且返回一个结 阅读全文