摘要: 1、打开Web.config,注释<!--<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> -->行2、将View目录下的Web.config中的pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken= 阅读全文
posted @ 2011-08-20 19:29 CNF 阅读(656) 评论(2) 推荐(0) 编辑
摘要: 从一个简单的实例入手一、编写需要测试的类,该类为String对象扩展了IsIn方法,目的是判断当前字符串是否存在于指定的数组中,代码如下:View Code public static class HelperString { public static bool IsIn(this string str, string[] strs) { if (strs == null) { if (str == null) { return true; } return false; } foreach (string item in strs) { if (str == item) { return 阅读全文
posted @ 2011-05-19 17:45 CNF 阅读(5197) 评论(1) 推荐(0) 编辑
摘要: 一、享元模式是为了解决一个系统创建了过多类实例而带来的系统开销的解决方案二、内部状态,即在一个对象中不会随外部环境不同而发生变化的状态,是需要被共享的状态三、外部状态,与内部状态相反四、以下是一个公司饮水机的例子。使用享元模式,保存了各个部门的饮水机实例,不需要在每个员工饮水的时候去实例化。 View Code /// <summary> /// 饮水机超类 /// </summary> public abstract class WaterMachine { /// <summary> /// 剩余的水量 /// </summary> publ 阅读全文
posted @ 2011-05-18 11:56 CNF 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 一、在调用一个已存在的,不易更改的对象时,如果需要将该对象的接口与自己的项目所需要的接口一致时,需要使用适配器模式。View Code /// <summary> /// 输入对象通用接口 /// </summary> public interface IWriter { void Write(string content); }View Code /// <summary> /// 实现了通用接口的普通输入对象 /// </summary> public class Writer:IWriter { public void Write(stri 阅读全文
posted @ 2011-05-12 11:06 CNF 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一、观察者对象在触发某个事件的时候会通知在观察者对象中注册的其他对象二、使用抽象接口实现对象的松耦合,即观察者可以注册支持某个接口的所有对象,而被注册的对象也只依赖于支持某个接口观察者对象。例如:邮局相对于一个观察者,每个邮局都有一个接口,发送快递。 每个客户相对于不同的接收者,邮局在收到快递后,会通知收信的客户。View Code /// <summary> /// 观察者对象的抽象实现 /// </summary> public abstract class Inform { protected List<IViewer> Viewers = new L 阅读全文
posted @ 2011-05-11 11:49 CNF 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 一、建造者模式适用于构建一些内部工作流程一致,实现方式不同的对象。比如说我们每个人每天基本上是用餐四次(早、中、晚和宵夜,但也有不同的)。这里我们不考虑特殊的情况,来说明建造者模式的构建。View Code /// <summary> /// 定义了每天必须完成项目的抽象接口 /// </summary> public interface IBuild { void BuildMorning(); void BuildNoon(); void BuildEvening(); void BuildNight(); }View Code /// <summary> 阅读全文
posted @ 2011-04-26 16:30 CNF 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 步骤:一、在父类中创建模板方法,以完成一致的操作二、在子类中实现其个别不同的操作代码: /// <summary> /// 数据验证父类 /// </summary> public abstract class Validation { public void Valid(string value) { Console.WriteLine("\r\n验证结果:{0}\r\n", this.IsVald(value)); } protected virtual bool IsVald(string value) { return true; } } / 阅读全文
posted @ 2011-04-23 15:34 CNF 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 列举一下在程序集中嵌入脚本文件的几种方式:1、this.Page.ClientScript.RegisterClientScriptBlock:注册脚本2、this.Page.ClientScript.RegisterClientScriptInclude:引用脚本(URL地址)3、this.Page.ClientScript.RegisterClientScriptResource:引用名称(比如:MyAssembly.Js.MyJs.js)下面我来讲讲用的比较的多:this.Page.ClientScript.RegisterClientScriptResource,在程序集中嵌入脚本文件 阅读全文
posted @ 2011-01-14 10:16 CNF 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 第一步:创建目录结构(看需求来定)第二步、添加Route[代码]第三步、重写HttpApplicationController的OnActionExecuting事件(关键)代码第四步、按F5键^_^使用Filter实现上述功能一、自定义一个继承自ActionFilterAttribute的类,重写OnActionExecuting事件,代码如下:二、在Controller中标记属性三、按F5键^_^ 阅读全文
posted @ 2011-01-11 15:25 CNF 阅读(2753) 评论(8) 推荐(1) 编辑
摘要: 一、nVelocity定义nVelocity是一个基于.NET的模板引擎。它定义了简单的模板语言从HTML页面中引用由.NET代码定义的对象,和引用外部文件等。从而使得界面设计人员与.NET程序开发人员基本分离。以下总结了网上比较常用的模板标记,以及本人对nVelocity的认识。一、nVelocity的常用功能简介1、 在页面中定义变量,并进行简单的运算。2、 在页面中获得对后台程序实体对象的引... 阅读全文
posted @ 2010-10-18 09:29 CNF 阅读(2764) 评论(3) 推荐(4) 编辑