2011-06-04 50 views
3

我有一个数据库字段(邮政编码),我想包含大写字符,空格和数字。没有小写或其他标点符号。我想尽可能以声明方式处理。一种方法是使用正则表达式DataAnnotation来验证,[A-Z][0-9]\w(或类似的 - 我不是一个正则表达式专家,但我确定有正确的正则表达式可以找到)。这将做我想要的一半 - 它会强制用户输入大写,但它不会转换为大写。强制并将ASP.NET MVC3和Entity Framework 4属性转换为大写

如果我要转换为大写有在堆栈溢出问题How can I force input to uppercase in an ASP.NET textbox?一些解决方案,但他们都不是特别声明。目前,我正在考虑将验证和jQuery结合起来,用“大写”类来识别任何内容并转换数据,但这有点麻烦。

我错过了什么?

回答

2

CSS text-transform:uppercase

http://www.w3schools.com/css/pr_text_text-transform.asp

UPDATE:

尝试实现自定义ModelBinder的。下面是一个例子:http://www.agileatwork.com/custom-model-binder-in-asp-net-mvc/

而不是AddRoles只需将该属性设置为大写。无需触摸您的EF课程。

+1

不只是显示大写的字符,而不是将它们改为大写?在这种情况下,我会在支持数据库,报告等中存储混合大小写吗? – Andiih 2011-06-04 09:36:26

+0

尝试实施自定义ModelBinder。 – 2011-06-04 19:44:09

2

为什么不只是改变setter来将接收到的值存储为大写?

所以,在你的类对象中,而不是速记属性{ get; set; }改为;

get { return this.property; } 

set { this.property = value.ToUpper(); } 
+0

不幸的是,因为它的EF4(不是POCO)物体,否则就是完美的! – Andiih 2011-06-04 14:16:05

相关问题