在我的项目用户表单中包含SSN(Social Security Number)
字段,我使用javascript将文本框值格式化为SSN格式。
问题在于我使用了“范围数据”注释属性,当我的文本框包含格式化的值132-456-789
时,它会显示数据注释错误消息“' DINTEGERC'必须在-2147483648和2147483647'。
因此,请让我知道如何使Range Data注释属性与上面给定的值一起使用。
以下是该字段的定义。
[Range(-2147483648, 2147483647, ErrorMessage="\'DINTEGERC\' must be within -2147483648 and 2147483647.")]
public System.Nullable<int> DINTEGERC{get;set;}//;
文本框值:123-456-789无效。
答案 0 :(得分:0)
您不能将RangeAttribute
用于格式化数值,因为连字符不计为数字。格式化的SSN值必须通过应用string
注释属性在模型类中使用RegularExpressionAttribute
属性,如下例所示。
[RegularExpression(@"^\d{3}-\d{3}-\d{3}$", ErrorMessage = "Invalid SSN"]
public string SSN { get; set; }
如果您想在文本框中接受完全数字或格式化值,则RegularExpressionAttribute
应更改为:
[RegularExpression(@"^\d{9}|\d{3}-\d{3}-\d{3}$", ErrorMessage = "Invalid SSN"]
public string SSN { get; set; }
注意:在DBA透视图中,您当前使用的int
等数字数据类型应仅用于计算出的数字,因此string
数据类型为优选的。