You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC5模态框表单验证正常但IsValid始终为false无法触发控制器方法

解决ASP.NET MVC5模态框表单验证IsValid()始终返回false的问题

嘿,我一眼就揪出了核心问题——你把jQuery Validate的验证方法名写错了!JS里的方法是小写开头的valid(),而不是你写的IsValid()(这是C#的命名习惯,JS遵循小驼峰规则)。这就是为啥视觉上验证提示正常,但代码里的条件永远进不去的原因。

下面给你一步步的修复方案,顺便优化下你的代码:

1. 修正验证方法调用

把提交函数里的判断语句改成这样:

if (formRef.valid()) {
    // 你的AJAX提交逻辑
}

2. 优化表单验证解析逻辑

你现在每次点击提交都重复移除验证数据再解析,其实完全可以把解析逻辑放到模态框显示的时候,只做一次就够了:

function AddView() {
    $("#BtnUpdate").hide();
    $("#BtnSubmit").show();
    $("#myModal").modal('show');
    $("#ChaptCatId").val("");
    $("#CatName").val("");
    
    // 模态框显示后,重新解析表单验证规则
    const formRef = $("#formSubmit");
    formRef.removeData('validator').removeData('unobtrusiveValidation');
    $.validator.unobtrusive.parse(formRef);
    
    return false;
}

function BtnSubmit() {
    const formRef = $("#formSubmit");
    // 直接调用正确的valid()方法
    if (formRef.valid()) {
        const data = formRef.serialize();
        $.ajax({
            type: 'POST',
            url: '@Url.Action("PostData","Home")',
            data: data,
            dataType: 'JSON',
            success: function (response) {
                $.notify(response.message, { className: 'success', globalPosition: 'top center' })
                dtCatList.ajax.reload();
                $("#myModal").modal('hide');
            },
            error: function () {
                alert("Error while Saving");
            }
        });
    }
}

3. 额外检查项(避免踩其他坑)

  • 确认你的ChapterCategory模型里,CatName属性加了正确的验证特性,比如必填:
public class ChapterCategory
{
    public int ChaptCatId { get; set; }
    
    [Required(ErrorMessage = "Category name is required")]
    public string CatName { get; set; }
}
  • 确保页面脚本引入顺序正确:jQuery → jQuery Validate → jQuery Unobtrusive Validate,顺序错了会导致验证失效
  • 检查隐藏字段ChaptCatId的验证规则,如果模型里给它加了[Required],那空值会导致验证失败(不过int类型默认是0,一般不会有问题)

测试验证

改完之后,先测试空提交,确认视觉验证提示正常;然后填写合法内容,此时formRef.valid()应该返回true,就能顺利触发你的AJAX提交逻辑,调用控制器的PostData方法了。

内容的提问来源于stack exchange,提问作者Fazil Basheer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:10:26