【发布时间】:2018-03-14 18:43:52
【问题描述】:
我有一个包含以下属性的模型:
[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 来防止该字段在提交时被验证?
【问题讨论】:
-
这与 jQuery 无关(或者至少 jQuery 部分——
$("#City").removeAttr("required");——是正确的)。这是一个 ASP.Net MVC 的东西。在客户端删除它并不会告诉 服务器 它不再需要。 -
感谢您的建议,感谢 T.J 指出这是服务器端验证。我仍在学习验证,并且由于页面的响应方式,我确信这是在客户端发生的。我将首先重新评估该属性是否需要 [Required] 属性。
-
如果 city 没有值,为什么不检查你的控制器,如果是,在检查模型状态是否有效之前将其设置为空字符串。
-
使用foolproof 或类似的
[RequiredIf]条件验证属性,以便您获得客户端和服务器端验证。另请参阅The Complete Guide To Validation In ASP.NET MVC 3 - Part 2
标签: asp.net-mvc html validation