RIA服务验证,如果无效则不更新值

时间:2013-01-06 03:21:37

标签: silverlight validation ria

在我的Silverlight RIA应用程序中,需要验证小数属性。我试图使用RegularExpression和Range来注释元数据中的属性,如下所示:

//[RegularExpression(@"^[1-9]\d*(\.\d+)?$", ErrorMessage = "Quantity has to be a positive numeric value")]      
[Range(typeof(decimal), "1", "1000",  ErrorMessage = "Quantity must be between {1} and {2}")]

添加新实体时,两者都可以验证数字值,但如果我键入字母,则两者都不会标记任何错误,但也不会更新属性。例如,如果我先输入2,然后更改为“test”,则文本框中没有错误消息。保存实体时,属性值仍为2。

这是预期的行为吗?如果是,我怎样才能将任何无数字条目标记为错误?

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了原因。由于属性类型是十进制的,当输入文本时,它将抛出异常并且永远不会到达" Set",因此验证不会被触发。设置" ValidatesOnExceptions = True"控件上将显示默认错误消息"格式无效"。