我在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}」項。
有沒有什麼辦法可以在驗證功能中更改錯誤信息?
有趣的是,另外一天我讀了另一篇關於null FormContext的文章,導致在使用表單輸入加載部分視圖時data-val屬性不顯示。謝謝你會試試這個... – danludwig