我的申请是在mvc 3
我的视图中有一个ddlfor,它列出了两个值A和B. 在同一视图中还有一个字段电子邮件 只有当ddl的选定值为“A”时,我才需要将此电子邮件字段设为必填或强制字段。并且无需验证所选值是否为“B”。 我该如何实现这个场景.PLsss帮助我
现在,在我的模型中,电子邮件是必填字段。我需要改变吗? 如果我改变了我将强制要求电子邮件的地方,而不是基于ddl值强制要求?
请告诉我。 提前致谢, 普里亚
答案 0 :(得分:1)
你可以在JQuery中做到这一点。在Jquery中,如果'A'并且email字段为空,则检查下拉值是否返回false,以便不提交表单。
在服务器端而不是使用数据注释,您可以使用自定义方法进行验证。
答案 1 :(得分:0)
IValidatableObject
界面允许您在模型级别执行验证:
public class MyModel : IValidatableObject
{
public string Email { get; set; }
public string SelectedValue { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (SelectedValue == "A" && string.IsNullOrEmpty(Email))
{
yield return new ValidationResult("Email address is required.", new [] { "Email" });
}
}
}
如果您在下拉列表中选择的值为“A”,它将突出显示电子邮件字段。