本文演示Enterprise Library – Validation Application Block 验证管理模块的使用,练习使用定制的资源文件重载默认的验证失败的错误消息模板,也可以使用文本消息模板。本文由
http://blog.entlib.com 开源ASP.NET博客平台小组根据EntLib HOL手册编译提供,欢迎交流。
练习四:为验证失败使用定制的消息模板
下面的操作可以在练习三的基础上继续操作,或者直接打开\Enterprise Library 4.1 HOL\CS\Validation\Labs\Lab04\Before目录下的ValidationHOL.sln项目文件。该Solution包含有两个项目,分别为ValidationHOL.BusinessLogic和ValidationHOL。
1. 创建资源文件
右键点击ValidationHOL.BubsinessLogic 项目,选择Properties,点击Resurces 标签,然后点击Link创建默认的资源文件,如下图所示。
![Validation_4_1.gif](https://i-blog.csdnimg.cn/blog_migrate/43b8b6680c54cb2301b625e4afd268b3.png)
2. 在资源文件中添加字符串
在资源文件编辑器中添加如下字符串。
FirstNameMessage – First Name 必须包含{3}到{5}的字符。
LastNameMessage – Last Name 必须包含{3}到{5}的字符。
SSNMessage – 社会安全号 (SSN) 必须符合格式 ###-##-####。
注:上述字符串中的{3}和{5}表示字符串长度的上下限边界。
![Validation_4_2.gif](https://i-blog.csdnimg.cn/blog_migrate/3d9c788ab0a95a1e9ddb516f989cccaf.png)
3. 更新Validation Attribute使用资源文件
在Customer类中,为成员的Validator Attributes设置MessageTemplateResourceType和MessageTemplateResourceName参数为定制的消息模板。
(1)首先打开 Customer.cs文件,添加如下Namespace的引用,这样默认的资源类型对该类可用。
using
ValidationHOL.BusinessLogic.Properties;
(2)更新Customer类中FirstName, LastName和SSN的Validation Attributes。
public class Customer
{
[StringLengthValidator(1, 25,
MessageTemplateResourceType = typeof(Resources),
MessageTemplateResourceName = "FirstNameMessage")]
public string FirstName { get; set; }
[StringLengthValidator(1, 25,
MessageTemplateResourceType = typeof(Resources),
MessageTemplateResourceName = "LastNameMessage")]
public string LastName { get; set; }
[RegexValidator(@"^\d\d\d-\d\d-\d\d\d\d$",
MessageTemplateResourceType = typeof(Resources),
MessageTemplateResourceName = "SSNMessage")]
public string SSN { get; set; }
[ObjectValidator]
public Address Address { get; set; }
}
4. 检查是否使用资源文件中定义的消息模板覆盖了默认的验证错误消息
运行范例程序,在数据录入窗口,不录入任何信息,点击Accept按钮,弹出验证错行消息对话框,如下图所示,默认的错误消息已经替换为资源文件中定义的字符串。
![Validation_4_3.gif](https://i-blog.csdnimg.cn/blog_migrate/0d4b285807f703114a7164dad5035a27.png)
http://www.entlib.com专业ASP.NET电子商务平台小组,欢迎你继续访问Validation Application Block学习手册。
参考文档:
Validation Application Block Hands-On Labs for Enterprise Library