2011-06-04 49 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

相關問題