如果字段在ASP.NET MVC 5中隐藏,则忽略必填字段

时间:2019-11-23 09:24:17

标签: validation asp.net-mvc-5 model-validation

我正在使用具有模型的ASP.NET MVC 5。我的模型中的属性是必需的。但是,在前端的形式中,元素最初是不可见的。我希望仅在字段可见时进行验证。当前,即使该字段不可见,也会进行验证。我的字段在前端看起来像这样:

<div style="display:none;">
    @Html.TextBoxFor(Model => Model.name, "", new { @class = "adrInput form-control" })
    @Html.ValidationMessageFor(Model => Model.name, "", new { @class = "valErrorMsg" })
</div>

在模型中,我的字段如下所示:

[Required(ErrorMessage = "Please insert name.")]
public string name{ get; set; }

如何确保仅在元素可见时进行验证?当前,始终执行验证。无论字段是否可见。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。您必须在控制器中签入元素是否可见。我能够在我的应用程序中非常轻松地检查此内容,因为当我的表单中未选中某个复选框时,会显示该文本框。然后,我可以从模型中读取此复选框的值。这样,您可以删除验证:

this.ModelState.Remove("name");