动机:我在类中有一个十进制属性,我希望验证它,以便它遵循正则表达式“^ \ d {1,7}。\ d {2,7} $”
所以我已将Regex验证器属性应用于属性
[RegexValidator(@"^\d{1,7}\.\d{2,7}$"...)]
public Decimal MyDecimalProperty { get; set; }
然后,通过我的asp.net页面上的propertyproxyvalidator,我将文本框验证绑定到此属性类型。
<cc1:PropertyProxyValidator ID="MyValidator" runat="server" ControlToValidate="MyTextBox"
PropertyName="MyDecimalProperty" SourceTypeName="Myclass, Mydll"></cc1:PropertyProxyValidator>
在运行时,我在执行验证时遇到此错误:
“要验证的价值不是 期望的类型:期望的System.String 但得到了System.Decimal。“
知道如何解决这个问题,或者想要实现我的动机吗?
答案 0 :(得分:0)
构建正则表达式以处理字符串,而不是数字类型。也许你需要这样的东西:
public Decimal MyDecimalProperty { get; set; }
[RegexValidator(@"^\d{1,7}\.\d{2,7}$")]
public string MyDecimalPropertyString
{
get
{
return this.MyDecimalProperty.ToString();
}
}
另外,更新PropertyName
的{{1}}属性。