2011-10-21 43 views
0

想象一下,你在你的型號兩個領域:驗證非字符串數據類型3

public class MyModel 
{ 
    [Required(ErrorMessageResourceType = typeof(Resources.Resource), ErrorMessageResourceName = "DateRequired"] 
    public DateTime Date; 

    [DataType(DataType.Currency, ErrorMessageResourceType = typeof(Resources.Resource), ErrorMessageResourceName = "NumberError")] 
    public decimal Number; 
} 

我的問題是這樣的:如果用戶輸入一個無效日期(如「AAA」)或非無效的數字(比如'bbb'),那麼標準的jQuery驗證消息就像:'字段數字必須是一個數字'(Date也是這樣)。

如何爲我的字段獲取本地化的錯誤消息?我知道我可以將字段轉換爲字符串,然後手動將這些字段轉換爲相應的數據庫字段,但我相信必須有一種更簡單的方法。

回答

0

您應該爲您的語言加載正確的「messages _ ##。js」文件。例如,當我需要巴西葡萄牙語驗證時,我使用: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/localization/messages_ptbr.js

只需用本地化代碼替換「ptbr」即可。當然,您可以獲取代碼並使用您自己的消息。

+0

我明白你的意思,但希望能夠從C#中自定義消息100%。但它會變成你的解決方案是唯一的解決方案。 – olf

+0

由於這些消息是從jQuery Validate插件直接讀取的,所以實際上沒有其他辦法。他們是硬編碼,在這裏:https://github.com/jzaefferer/jquery-validation/blob/master/jquery.validate.js#L267 – rdumont

+0

@rdumont請更新鏈接,它現在已經死了。 –