ASP.NET 动态数据教程-用分部类方法自定义数据字段验证

作者:vkvi 来源:ITPOW(原创) 日期:2009-5-9

前面谈到利用 RegularExpression、Range、Required 来验证一个字段,但这离我们的需求可能还不够。

比如我希望用户 U1 只可以选择目录 C1,或者字段 A + 字段 B 的长度不能超过 10……

现在就需要用分部类方法来验证了。

using System.Web.DynamicData;
using System.ComponentModel.DataAnnotations;
 
namespace DynamicData
{
    partial class Companies
    {
        partial void OnValidate(System.Data.Linq.ChangeAction action)
        {
            if (Title.Length < 3 || Title.Length > 20)
            {
                throw new ValidationException("Title 的长度是 3-20。");
            }
        }
    }
}

高级自定义数据字段验证

如果我们要引入 Session 等信息,可用 System.Web.HttpContext.Current 获得 Http 上下文。

对表中的任何数据字段进行更改时将调用 OnValidate,当然,除了在 OnValidate 方法中验证外,也可以在 OnTitleChanging 方法中验证,不过最好是在 OnValidate 中验证:一是集中;二是可以安全使用其他字段(不会有其他字段还未被赋值的情况);三是修改 Title 值不会像 OnTitleChanging 一样形成死循环。

相关文章