使用jqueryaccordion进行MVC验证

使用jqueryaccordion进行MVC验证,jquery,asp.net-mvc,jquery-ui,validation,model-view-controller,Jquery,Asp.net Mvc,Jquery Ui,Validation,Model View Controller,我对ASP.NET MVC比较陌生,但对验证功能印象深刻。我有一个巨大的表单,我已经使用jQueryUI将其拆分成了一个手风琴。此表单是模型的一个非常基本的框架,该模型具有如下代码来验证所需的每个字段: [Required(ErrorMessage="Please Enter a Valid Product")] [DisplayFormat(ConvertEmptyStringToNull= false)] [StringLength(160, MinimumLengt

我对ASP.NET MVC比较陌生,但对验证功能印象深刻。我有一个巨大的表单,我已经使用jQueryUI将其拆分成了一个手风琴。此表单是模型的一个非常基本的框架,该模型具有如下代码来验证所需的每个字段:

    [Required(ErrorMessage="Please Enter a Valid Product")]
    [DisplayFormat(ConvertEmptyStringToNull= false)]
    [StringLength(160, MinimumLength=2,ErrorMessage="Product Must Be At Least 2 Characters")]
然后这个视图就有了:

            <div class="editor-label">
                @Html.LabelFor(model => model.Product)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Product)
                @Html.ValidationMessageFor(model => model.Product)
            </div>

@LabelFor(model=>model.Product)
@EditorFor(model=>model.Product)
@Html.ValidationMessageFor(model=>model.Product)

如果在手风琴中观看该领域,这将非常有效。如果将该字段留空,则会显示消息,并且一切都按计划进行。问题是,当我切换到accordion中的另一个选项卡时,必填字段不可见,我可以很好地提交表单,这让我的服务器非常失望。如果我填写该字段,它当然会按预期通过。有没有办法解决这个问题?

原来答案是将以下内容放到视图中:

$('#Form').validate().settings.ignore = []
问题是隐藏字段没有使用Jquery验证(MVC使用的是Jquery验证)进行检查,一旦accordian折叠,它们就被隐藏了。这告诉他们不要忽视它们