Asp.net mvc 4 如何删除MVC4中的required属性,尽管这在模型中是必需的

Asp.net mvc 4 如何删除MVC4中的required属性,尽管这在模型中是必需的,asp.net-mvc-4,asp.net-mvc-validation,Asp.net Mvc 4,Asp.net Mvc Validation,我无法对字符串属性执行相同的操作。在下面的代码中,我想删除“姓氏”的验证,并将其设置为可选 [Required(ErrorMessage = "Required")] [Display(Name="Last Name")] public string LastName { get; set; } 您可以将以下java脚本添加到视图中,它将删除LastName的required规则,尽管该规则在模型中是必需的 $("#LastName").rules("remove", "require

我无法对字符串属性执行相同的操作。在下面的代码中,我想删除“姓氏”的验证,并将其设置为可选

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

您可以将以下java脚本添加到视图中,它将删除
LastName
required
规则,尽管该规则在模型中是必需的

$("#LastName").rules("remove", "required");

谢谢

如果希望ModelState有效,请尝试以下操作:

   ModelState["LastName"].Errors.Clear();
if (ModelState.IsValid)
{
   // your logic
}
如果要禁用客户端验证,请执行以下操作:

  @Html.EnableClientValidation(false);

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

您可以使用此选项禁用特定字段的客户端验证

<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.Remove("SomeValue"); // to omit SomeValue Validation Error

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

从您的型号中删除此行-
[必需(ErrorMessage=“必需”)]
。重新编译,将不再需要该属性。我想从视图中删除验证。这可能吗?我已经应用了逻辑,但我还有一个问题。ModelState无效。ModelState.IsValid返回false。这是因为您在模型中将
LastName
定义为
Required
。要么您必须删除
ModelState.IsValid
检查并分别对字段进行验证,要么您可以添加
ModelState[“LastName”]。Errors.Clear()在检查状态之前。然后它会一直清除
LastName
字段的模型错误。无论如何,如果您不想验证,为什么要在模型中设置它?该模型是为通用目的创建的。我使用这个模型根据不同的需求创建动态表单。我想使用相同的模型并生成表单。如果我想禁用一个字段的验证,那么这将是一个困难的问题。我如何才能使验证再次启用?谢谢。这是可以理解的。我的问题是:我已经为字段Last Name指定了必需的属性。现在我想从客户端删除。这仅适用于该字段吗?请提供帮助。@SubrataChakraborty您可以使用此命令禁用特定字段的客户端验证