【发布时间】:2016-05-13 12:24:57
【问题描述】:
情况
我有一个社会保障字段,上面有一个输入掩码,因此我们得到:“999-99-9999”。提交表单时,该字段的值是“unmasked”,表示连字符被删除。
问题
我的项目是用 EF 代码优先编写的,我想将最大字符串长度指定为 9 仅在数据库中!! 我已经有客户端验证,形式为允许最多 11 个字符的正则表达式。提交表单并删除连字符后,该值将变为 9,所有内容都将是 hunky dory。
问题
我应该使用哪些数据注释来设置数据库中字段的最大字符串长度,同时为客户端验证指定不同的最大长度?
【问题讨论】:
-
为什么不将其存储为整数?
-
我必须为它做一个自定义输入字段。如果我尝试为整数设置自定义编辑器但为字符串指定验证,我认为任何验证都不会很好地工作。因为由于连字符,它将是一个字符串。不知道如何解决这个问题。
-
一个允许两者的正则表达式怎么样 -
^\d{3}-\d{2}-\d{4}|\d{9}$ -
我目前正在应用正则表达式
^\d\d\d(?:\d\d|-\d\d-)\d\d\d\d$ -
使用
MaxLength属性...见这里msdn.microsoft.com/en-us/data/jj591583#MaxMin
标签: asp.net-mvc vb.net entity-framework ef-code-first data-annotations