如何删除MVC4中的必需属性,尽管模型中已经需要这样做

时间:2014-07-16 06:44:14

标签: asp.net-mvc-4 asp.net-mvc-validation

我无法对字符串属性做同样的事情。在下面的代码中,我想删除'姓氏'并使其成为可选项。

[Required(ErrorMessage = "Required")]    
[Display(Name="Last Name")]
public string LastName { get; set; }

3 个答案:

答案 0 :(得分:10)

您可以在视图中添加以下java脚本,但它会删除required的{​​{1}}规则,尽管模型中已经要求它。

LastName

谢谢!

答案 1 :(得分:2)

如果您希望ModelState有效,请尝试以下方法:

   ModelState["LastName"].Errors.Clear();
if (ModelState.IsValid)
{
   // your logic
}

如果要禁用客户端验证,请执行以下操作:

  @Html.EnableClientValidation(false);

注意:这将禁用所有客户端验证。

答案 2 :(得分:0)

您可以使用此

禁用特定字段的客户端验证
<form method="post">
   // to disable client-side validaiton for model.SomeValue
   @{ Html.EnableClientValidation(false); } 
   @Html.TextBoxFor(model => model.SomeValue)<br />
   @{ Html.EnableClientValidation(true); }
   <input type="submit" />
</form>

或者您可以使用此

省略控制器端特定字段的ModelState Error
ModelState.Remove("SomeValue"); // to omit SomeValue Validation Error

if(ModelState.IsValid)
{
   //Do some stuff, eventually redirect elsewhere
}