在我的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。
这是预期的行为吗?如果是,我怎样才能将任何无数字条目标记为错误?
感谢。
答案 0 :(得分:0)
我找到了原因。由于属性类型是十进制的,当输入文本时,它将抛出异常并且永远不会到达" Set",因此验证不会被触发。设置" ValidatesOnExceptions = True"控件上将显示默认错误消息"格式无效"。