0

我在MVC3表單中有多個select列表框。用戶可以在此列表框中添加&刪除自定義option元素。不過,我想驗證列表框中沒有2個選項包含相同的值。是否可以使用MVC不顯眼適配器在驗證函數期間自定義jQuery驗證消息?

我創建了一個實現IClientValidatable的自定義ValidationAttribute。服務器和客戶端驗證都在工作。然而,我的ErrorMessage看起來是這樣的:

ErrorMessage = "{0} has more than 1 '{1}' option.") 

不幸的是我只能傳遞部分格式化的消息給客戶端驗證消息,我做它像這樣:

var rule = new ModelClientValidationRule 
{ 
    ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()), 
    ValidationType = "noduplicatestringvalues", 
}; 

驗證不會知道在驗證運行之前哪些選項值是重複的,所以我想在驗證功能期間完成消息格式化。

但是,似乎只能在$.validator.unobtrusive.adapters.add()函數中設置錯誤消息。

我曾嘗試驗證期間設定select元件上的data-val-noduplicatestringvalues屬性,但仍顯示像這樣的錯誤消息:

字段名具有多於1「{1}」項。

有沒有什麼辦法可以在驗證功能中更改錯誤信息?

回答

2

您可以自定義消息。

如果您看中的remote驗證方法,您將看到一個自定義錯誤消息的示例,在這種情況下使用從遠程驗證功能返回的消息。

+0

有趣的是,另外一天我讀了另一篇關於null FormContext的文章,導致在使用表單輸入加載部分視圖時data-val屬性不顯示。謝謝你會試試這個... – danludwig

相關問題