2011年3月5日

MVC 验证和异常处理 重用服务端验证

摘要: 还记得之前做的自定义email地址合法性验证吗?public class ValidEmailAddressAttribute : RegularExpressionAttribute { private const string EmailPattern = ".+@.+\\..+"; public ValidEmailAddressAttribute() : base(EmailPattern) { // Default message unless declared on the attribute ErrorMessage = "{0} must be a 阅读全文

posted @ 2011-03-05 23:27 arg 阅读(513) 评论(0) 推荐(0) 编辑

MVC 验证和异常处理 实现自定义客户端验证逻辑

摘要: 以实现[EqualToProperty] 为例。A,首先定义一个继承自ModelValidator的类并重写GetClientValidationRules方法。public class EqualToPropertyValidator : ModelValidator { // ... rest as before public override IEnumerable<ModelClientValidationRule> GetClientValidationRules() { var clientValidationRule = new ModelClientValidati 阅读全文

posted @ 2011-03-05 23:18 arg 阅读(377) 评论(0) 推荐(0) 编辑

MVC 验证和异常处理 客户端验证

摘要: 一般处理Asp.net mvc 可以依据model的 metadata 使用ModelValidator对象生产客户端验证脚本。使用方法为包括以下步骤:A,model使用Data Annotation attribute,B,然后在view上加一行:<% Html.EnableClientValidation(); %>注意语法格式,该方法返回的是void,所以用<% %>而不是<%: %>。C,引用js脚本<script type="text/javascript" src="<%: Url.Content(&qu 阅读全文

posted @ 2011-03-05 17:10 arg 阅读(1040) 评论(5) 推荐(0) 编辑

2011年3月4日

MVC 验证和异常处理 手工激活验证

摘要: 不管是通过action参数获取一个model,或者是手工calling UpdateModel()还是TryUpdateModel(),默认的DefaultModelBinder都将自动执行合法验证。但是,你用其他的方法更新model时,自动验证则会跳过。例如:public ActionResult MakeBooking(string clientName, DateTime? appointmentDate, bool acceptsTerms) { var appt = new Appointment { ClientName = clientName, AppointmentDate 阅读全文

posted @ 2011-03-04 21:55 arg 阅读(416) 评论(0) 推荐(0) 编辑

MVC 验证和异常处理 自动验证使用 IDataErrorInfo 接口

摘要: 除了DataAnnotationsModelValidationFactory,还有DataErrorInfoModelValidatorProvider。DataErrorInfoModelValidatorProvider提供另一种自定义数据合法性验证支持。Asp.net mvc硬编码支持IDataErrorInfo接口。使用方法为model实现IDataErrorInfo。IDataErrorInfo要求实现返回model级别和属性级别违法信息。示例:public class Appointment : IDataErrorInfo { public string ClientName 阅读全文

posted @ 2011-03-04 19:16 arg 阅读(680) 评论(0) 推荐(0) 编辑

MVC 验证和异常处理 自动验证使用Data Annotations Validation Attributes

摘要: 使用数据标签验证属性,control不用劳什子一一手工指定验证,在model binding期间,所有标记属性会自动启用验证,并把不合法信息登记进ModelState。View不需要任何变化。默认,asp.net mvc注册使用DataAnnotationsModelValidationFactory,它能识别的标签包括:[Range],[RegularExpression],[Required],[StringLength]。示例:public class Appointment { [Required(ErrorMessage = "Please enter your name& 阅读全文

posted @ 2011-03-04 19:01 arg 阅读(1228) 评论(0) 推荐(0) 编辑

MVC 验证和异常处理 分开处理Model级别和属性级别验证

摘要: Model和属性级别区分的概念需要参考这种场景:几个属性合一块来决定出一现合法信息属于model级,属性级则在纠缠在本身,比如int型必须是int型这种。 带来级别的概念是为了解释一种验证信息不好指定为某个属性上时的处理方案。View有两种显示异常的情况一种是summer(Html.ValidationSummary()),一种是each(Html.ValidationMessageFor())。属性界别用each一一对应,模块界别用summer。ModelState.AddModelError也支持key为空,key为空,则信息属于model级别。但是summer默认会显示已经包括在each 阅读全文

posted @ 2011-03-04 18:32 arg 阅读(761) 评论(0) 推荐(0) 编辑

MVC 验证和异常处理 开篇及简单示例

摘要: MVC 验证和异常处理 开篇及简单示例。 背景: MVC 验证和异常处理参考Pro ASP.NET MVC2 Framerowk Seciond Edition.Pdf,将会有书中示例出现在随笔中,或者由于个人能力问题,和原文有偏差。纯属个人加强记忆的随笔。欢迎指正。 开始第一篇 注册和 显示不合法验证信息MVC 用ModelState 存储Model在请求间发生的一系列信息,包括后台数据合法性验证 。让我们用一个例子来说明使用方法:后台定义个model和一个controlpublic class Appointment { public string ClientName { get; se 阅读全文

posted @ 2011-03-04 17:50 arg 阅读(520) 评论(0) 推荐(1) 编辑

2011年2月9日

控制台(Console)承载多个加载自配置文件的ServiceHost实践

摘要: 遇到一个这样的应用场景: 多个service,由控制台承载,服务配置在配置文件中。控制台启动时,读取配置文件,启动多个ServiceHost实例。 搜到如这里描叙的解决方法:wcf中如何Host多个WCF服务?。确实是个解决方法。但是发现一个问题,和一个疑问。 问题: 如果service中的服务类,和以上连接中列出的代码不在同一个程序集(不在同一个dll),则会遇到Type.GetType(typename)为null的错误。这里的错,在于调用Type.GetType时,实际上下文是当前程序集,自然如果服务类在不同的程序集,则Type.GetType(typename)会返回null。如何让T 阅读全文

posted @ 2011-02-09 16:48 arg 阅读(440) 评论(0) 推荐(0) 编辑

2010年11月19日

由JavaScript的作用域说开去

摘要: 首先,以下提到的高级语言,指非脚本,强类型语言。 一般某语言在介绍自己的作用域时,都会有全局变量,局部变量之分。高级语言代码运行域有进程<应用程序域<程序集<对象。js脚本与之类比,则运行空间有浏览器进程>js代码所在页面>对象。当我们通过iframe,或者弹出新窗口,子窗口和父窗口互相操作时,在窗口未关闭的状态下,js的作用域可以扩大到所有激活窗口(不含其他网站(域... 阅读全文

posted @ 2010-11-19 14:56 arg 阅读(270) 评论(0) 推荐(0) 编辑

导航