在ASP.NET MVC5中,如果在模态框中的验证不起作用,可以按照以下步骤解决:
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "myForm" }))
{
@Html.AntiForgeryToken()
@Html.LabelFor(model => model.PropertyName)
@Html.TextBoxFor(model => model.PropertyName, new { @class = "form-control", required = "required" })
@Html.ValidationMessageFor(model => model.PropertyName)
}
$(document).ready(function () {
// 表单验证规则
$("#myForm").validate({
rules: {
PropertyName: {
required: true
},
// 添加其他表单元素的验证规则
},
messages: {
PropertyName: {
required: "必填字段"
},
// 添加其他表单元素的错误提示信息
},
errorPlacement: function (error, element) {
error.appendTo(element.parent().parent());
},
highlight: function (element) {
$(element).closest(".form-group").addClass("has-error");
},
unhighlight: function (element) {
$(element).closest(".form-group").removeClass("has-error");
}
});
// 表单提交后验证
$("#myForm").submit(function () {
if ($(this).valid()) {
// 表单验证通过,执行提交操作
return true;
}
else {
// 表单验证失败,阻止提交操作
return false;
}
});
});
通过以上步骤,可以解决在ASP.NET MVC5模态框中的验证不起作用的问题。在模态框中的表单元素添加了必要的验证属性,并通过JavaScript代码绑定了验证规则和错误处理函数。