根据下拉列表值选择创建所需的电子邮件字段

时间:2013-10-24 12:23:15

标签: asp.net-mvc-3

我的申请是在mvc 3

我的视图中有一个ddlfor,它列出了两个值A和B. 在同一视图中还有一个字段电子邮件 只有当ddl的选定值为“A”时,我才需要将此电子邮件字段设为必填或强制字段。并且无需验证所选值是否为“B”。 我该如何实现这个场景.PLsss帮助我

现在,在我的模型中,电子邮件是必填字段。我需要改变吗? 如果我改变了我将强制要求电子邮件的地方,而不是基于ddl值强制要求?

请告诉我。 提前致谢, 普里亚

2 个答案:

答案 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”,它将突出显示电子邮件字段。