在某些情况下,使某个字段不是[必需]?

时间:2017-10-03 14:17:00

标签: asp.net-mvc html5 validation

我有一个包含以下属性的模型:

[Required]
public string City { get; set; }

基本上,用户从下拉列表中选择存储的值。我的局部视图中的字段填充了相应的数据。在某些情况下,存储的数据不具有City的值。我试图使用jQuery检查如果该字段为空,基本上不需要该字段并允许提交。我尝试过以下方法:

$("#City").attr("data-val", "false");
$("#City").rules("remove", "required");
$("#City").attr("disabled", "disabled");
$("#City").attr("aria-required", "false");
$("#City").removeAttr("required");

这些都不起作用。在提交时,控制器中的正确方法是使用ModelState.IsValid为false并且错误表明" City字段是必需的。"

如何使用jQuery阻止在提交时验证此字段?

2 个答案:

答案 0 :(得分:0)

在检查是否ModelState.IsValid之前,您可以删除模型ModelState["City"].Errors.Clear();的该属性上的错误。因此无论您的City属性发生了什么错误,模型状态都将为有效。

注意,此修复程序应该应用于服务器上的控制器 - 它与jQuery无关。

答案 1 :(得分:0)

尽管海报提出了一些很好的建议,但我最终还是重新评估了我们的需求,发现该特定属性并不需要必需属性。

感谢大家的建议。