asp.net mvc3 資料驗證(二)——錯誤資訊的自訂及其本地化

來源:互聯網
上載者:User
一、自訂錯誤資訊         在上一篇文章中所做的驗證,在介面上提示的資訊都是系統內建的,有些讀起來比較生硬。比如:

        如果你的環境是英文的,那麼你的提示資訊就是中英文夾雜的了。           在這種情況下就需要用到自訂錯誤資訊了。其實很簡單,就是在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中錯誤資訊的自訂和本地化比較簡單,暫時總結這麼多,下一篇就要講自訂資料驗證了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.