2010-10-19 93 views
0

我有一個視圖模型,像這樣的一個屬性:MVC 2模型驗證消息

[RegularExpression(@"^d\+$", ErrorMessageResourceType = typeof(Resources.Validation), ErrorMessageResourceName = "NumberValidationMsg")] 
public int? Number {get; set;} 

NumberValidationMsg資源設置爲「僅允許數字!」。

但是當我嘗試輸入類似「測試」插入表格編號字段,ModelState中顯示帶有類似內容的ErrorMessage:「值‘測試’無效號碼。」

可以關閉此消息嗎?定製? (或者也許是最好的辦法是隻更換INT?用繩子)

謝謝!

+0

Did you mean:'\ d +' – bzlm 2010-10-19 12:42:23

回答

1

如果你想在現場接受文本,你需要將其更改爲一個字符串,使您的轉換按照你的規則爲int。

如果你的模型是一個int,那麼唯一有效的投入將是一個int(或空的,如果它是「int?」),你不應該試圖阻止這一點,除非有充分的理由......此外,我相信你可以放棄整個正則表達式,因爲MVC已經爲你隱式檢查(因爲它是一個int)。

+0

嗨。 thx回覆。那麼,爲什麼我想要隱藏/定製此消息的原因是因爲本地化,ErrorMessage總是以英文顯示。 – shkipper 2010-10-19 12:58:25

+0

那麼你應該依靠資源。我之前已經問過同樣的問題,請在此處查看:http://stackoverflow.com/questions/2431333/displayname-attribute-from-resources以及此處的博客帖子:http://adamyan.blogspot.com/2010/ 02/ASPNET-MVC -2-定位-complete.html – Palantir 2010-10-19 13:00:14