【ASP.net MVC】如何讓 DataType 出現中文的錯誤訊息

在MVC中,在Modeel可以很方便的方式協助我們去做前端的資料驗證(下方程式碼),但是如果使用了DataType.EmailAddress,即使我們有輸入中文的ErrorMessage的錯誤訊息,但是在前端執行時還是會出現英文的錯誤訊息:Please enter a valid email address.,那我們該如何讓它出現"中文"的錯誤訊息呢?

前言

在MVC中,在Modeel可以很方便的方式協助我們去做前端的資料驗證(下方程式碼),但是如果使用了DataType.EmailAddress,即使我們有輸入中文的ErrorMessage的錯誤訊息,但是在前端執行時還是會出現英文的錯誤訊息:Please enter a valid email address.,那我們該如何讓它出現"中文"的錯誤訊息呢?

        [Display(Name = "電子信箱:")]
        [Required(ErrorMessage = "註冊需要您的電子信箱驗證")]
        [DataType(DataType.EmailAddress, ErrorMessage = "請輸入正確的電子信箱")]
        public string Email { get; set; }

內文

--2013/04/12更新--

感謝Kevin前輩跟KK前輩指點,今天小弟使用這個方法可以讓她使用中文

首先,我們需要到這個網站上下載或複製程式碼

(function ($) {
	$.extend($.validator.messages, {
		required: "必填",
		remote: "請修正此欄位",
		email: "請輸入正確的電子信箱位置",
		url: "請輸入合法的URL",
		date: "請輸入合法的日期",
		dateISO: "請輸入合法的日期 (ISO).",
		number: "請輸入數字",
		digits: "請輸入整數",
		creditcard: "請輸入合法的信用卡號碼",
		equalTo: "請重複輸入一次",
		accept: "請輸入有效的後缀字串",
		maxlength: $.validator.format("請輸入長度不大於{0} 的字串"),
		minlength: $.validator.format("請輸入長度不小於 {0} 的字串"),
		rangelength: $.validator.format("請輸入長度介於 {0} 和 {1} 之間的字串"),
		range: $.validator.format("請輸入介於 {0} 和 {1} 之間的數值"),
		max: $.validator.format("請輸入不大於 {0} 的數值"),
		min: $.validator.format("請輸入不小於 {0} 的數值")
	});
}(jQuery));

然後再我們專案中新增一個JS檔案:jquery.validate.plus.js

新增檔案

原本我們的錯誤訊息是像這樣...

英文的錯誤訊息

改好JavaScript後我們的錯誤訊息會是這樣

我們要的錯誤訊息

 

--結尾--

這個方法是利用JS檔案的優先順序做的,JS檔案越慢載入到頁面中優先的層級越高,所以我們將這個檔案掛載在驗證的JS檔案越底層,如此一來錯誤的訊息就會是我們在額外加入的檔案中的訊息,而不是原本的英文錯誤訊息囉!

 


 

大家好我是饅頭,希望大家喜歡我的文章

如果有錯誤的地方請不吝指教 ^_^