asp.net mvc3 數據驗證(二)——錯誤信息的自定義及其本地化


  
一、自定義錯誤信息
        在上一篇文章中所做的驗證,在界面上提示的信息都是系統自帶的,有些讀起來比較生硬。比如:

        如果你的環境是英文的,那么你的提示信息就是中英文夾雜的了。
 
        在這種情況下就需要用到自定義錯誤信息了。其實很簡單,就是在model的驗證特性中加上[ErrorMessage]。比如:
Model:
        [Required(ErrorMessage = "用戶名不能為空!")] 
        [Display(Name = "用戶名")]

        [Remote("CheckUserName","Account")]

        public string UserName { get; set; }

 

驗證結果:

        ErrorMessage允許開發者使用{0}占位符來顯示字段的顯示名(即 [Display(Name = "用戶名")]),如果沒有Display特性,那么會顯示屬性名。如:
Model:
        [Required(ErrorMessage = "{0}不能為空!")] 
        [Display(Name = "用戶名")]

        [Remote("CheckUserName","Account")]

        public string UserName { get; set; }

 

驗證結果:

若為:
        [Required(ErrorMessage = "{0}不能為空!")] //[Display(Name = "用戶名")]

        [Remote("CheckUserName","Account")]

        public string UserName { get; set; }

 

則驗證結果為:

        如果驗證的特性中還有其他參數,那么ErrorMessage可以用占位符直接顯示其他參數,如
Model:
        [Required]

        [StringLength(100, ErrorMessage = "請輸入{2}到{1}位的{0}。", MinimumLength = 6)] 
        [DataType(DataType.Password)]

        [Display(Name = "密碼")]

        public string Password { get; set; }

 

驗證結果:

 
 
二、錯誤信息的本地化
        如果你做的項目是要分發到不同的國家,那么就需要做本地化。而對於錯誤信息而言,也有這樣的功能,方法如下:
        1、在項目中添加兩個資源文件ErrorMessages.resx以及ErrorMessages.en-US.resx:

        2、在兩個資源文件中都加入名稱為UserNameRequire的資源,值分別為中英文下的提示信息:

        
        3、在web.config的 <system.web>節點加入 <globalization uiCulture="auto"/>,隨着瀏覽器的設置來更換資源文件。
        4、在Model中也如如下代碼:
        [Required(ErrorMessageResourceType = typeof(ErrorMessages), ErrorMessageResourceName = "UserNameRequire")]

        [Display(Name = "用戶名")]

        public string UserName { get; set; }

 

        5、運行結果:
中文環境下:

英文環境下:

 
        好了,mvc3中錯誤信息的自定義和本地化比較簡單,暫時總結這么多,下一篇就要講自定義數據驗證了。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM