【发布时间】:2015-12-04 12:55:54
【问题描述】:
我有以下简单的代码来检查成员的性别是否输入正确。
public partial class Member
{
partial void OnGenderChanging(string value)
{
if (!((value.ToLower() == "male") || (value.ToLower() == "female")))
{
throw new ValidationException("Must be Male or Female.");
}
}
}
我对此很满意,而且它在大多数情况下都能正常工作。自定义验证已添加到包含现有数据的表中,并且在添加新成员记录时有效,并且还可以防止您将性别从可接受的(比如女性)更改为不可接受的(例如 f)。但是,表中的一条记录中的值不正确,并且是在添加验证之前输入的。当我尝试通过 DynamicData 提供的 edit.aspx 页面编辑记录以使性别为“男性”或“女性”时,它会抛出错误消息......即使新值是正确的。
我知道我可以直接在数据库中编辑它来解决它,但我真的很想知道后台发生了什么。为什么 OnChanging 事件似乎在这种特殊情况下查看原始值而不是新值?
如有任何帮助,我们将不胜感激。
【问题讨论】:
-
我们没有足够的信息:谁打电话给
OnGenderChanging,什么时候打电话?
标签: c# asp.net validation