我在ASP.NET MVC 3中使用客户端验证的[必需]属性。
班级看起来像:
public class User { [required(ErrorMessage = "First Name is required")] public string FirstName { get; set; } }
我希望只有在可见的情况下才能验证字段FirstName,只有在某些条件下才会显示。我怎样才能做到这一点?
我已经使用了以下内容,但是它仍然需要验证该隐藏字段的必填字段。
$('#registerForm').validate({ ignore: ":not(:visible)" });
解决方法
来自@Josiah的一些有用的提示,我能够达到我的要求。
添加requiredIfAttribute类和所需的javascript。参考Conditional Validation in ASP.NET MVC 3
public class User { [requiredIf("hFirstName","true",ErrorMessage = "First Name is required")] public string FirstName { get; set; }
在aspx中
@Html.TextBoxFor(model => Model.FirstName,new { @style = "height:auto;" }) @Html.ValidationMessageFor(model => Model.FirstName) @Html.Hidden("hFirstName")
如果FirstName字段被隐藏,则将hFirstName的值设置为“true”,如果可见,则将其设置为“false”。
魔法与这些变化有关。感谢@Josiah Ruddell为他的answer