我將項目從MVC3升級到MVC4,並注意到我的一個驗證器不再觸發。我將它追溯到Shared/EditorTemplates文件夾中的一個自定義數據類型,該文件夾用於在整個網站中以各種形式捕獲社會安全號碼。 (我們只顯示在頁面後保存加載的最後4位數字,解釋正則表達式。)
SSN.cshtml爲MVC4中的自定義數據類型定義正則表達式驗證
@{
var ssn = (string)ViewData.TemplateInfo.FormattedModelValue;
if (!String.IsNullOrWhiteSpace(ssn)){
ssn = "###-##-" + Model.Substring(Model.Length - 4, 4);
}
}
@Html.TextBox("", ssn, new { @class = "text-box single-line ssn", pattern = @"^(\d{3}|###)-(\d{2}|##)-\d{4}$", placeholder = "###-##-####", title = "Expected pattern is ###-##-####" })
好像在MVC4不顯眼的驗證想找data-val-regex-pattern作爲渲染文本框的屬性,而不僅僅是模式。有沒有人遇到過這個?
注:我想保留自定義數據類型的驗證,所以我不必總是記得將它添加到每個模型。
謝謝!
當你做這是否客戶端不顯眼的驗證仍然有效? – 2013-05-01 19:54:47
雖然這將工作,我仍然必須將其添加到所有使用此數據類型的模型。我希望在渲染時將該數據屬性添加到輸入中。 – 2013-05-01 20:00:56