好的,所以我想我会尝试提供帮助,而不是仅仅发表评论。所以我假设你想使用不显眼的验证引擎
所以如果你这样做
@Html.TextBox("AccidentDate", Model.AccidentDate);
并查看源代码,您会看到如下内容:
<input data-val="true" data-val-required="The AccidentDate field is required."
id="AccidentDate" name="AccidentDate" type="text" value="">
所以要注意的重要一点是data-val
属性。这些基本上告诉不显眼的引擎,“这个字段需要验证,如果失败,这就是显示的方式和内容”
因此,要做到这一点,没有@Html.TextBox
它会为您完成所有这些,您需要自己在 HTML 中创建这些属性。
快速一个肮脏的解决方案,把你@HTML.TextBox
的,运行你的代码剪切和粘贴 HTML。可能不是你想要的?
编辑
你想要所需的验证,所以上面的data-val="true" data-val-required="The AccidentDate field is required."
属性就是你需要的,显然替换你自己的错误信息
所以:
<input type="text" id="AccidentDate" name="AccidentDate"
data-val="true" data-val-required="The AccidentDate field is required." />
@Html.ValidationMessage("AccidentDate")
CSS类
应该应用 Css 类。相关的代码是:
function onError(error, inputElement) { // 'this' is the form element
var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;
container.removeClass("field-validation-valid").addClass("field-validation-error");
error.data("unobtrusiveContainer", container);
if (replace) {
container.empty();
error.removeClass("input-validation-error").appendTo(container);
}
else {
error.hide();
}
}
里面jquery.validate.unobtrusive.js
。确认你引用了这个js文件,看看上面的代码是否被命中?