0

我的应用程序在 mvc 3 中

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

现在在我的模型中,电子邮件是必填字段。我需要改变它吗?如果我改变它,我将根据 ddl 值强制发送电子邮件而不是强制发送电子邮件?

请给我建议。在此先感谢,普里亚

4

2 回答 2

1

你可以在 JQuery 中做到这一点。在 Jquery 中检查下拉列表的值,如果“A”和电子邮件字段为空,则返回 false,以便不会提交表单。

在服务器端,您可以使用自定义方法进行验证,而不是使用数据注释。

于 2013-10-24T12:37:02.053 回答
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”,它将突出显示电子邮件字段。

于 2013-10-24T14:13:23.467 回答