C# 仅允许特定的电子邮件地址

C# 仅允许特定的电子邮件地址,c#,.net,asp.net-mvc,validation,overriding,C#,.net,Asp.net Mvc,Validation,Overriding,我正在从事一个MVC项目,我需要验证特定组的电子邮件地址。例如,只有那些emailID@stanford.edu可以注册。我尝试了数据批注,但它只验证电子邮件地址,而不是子字符串。如何检查电子邮件地址是否包含@stanford.edu?先谢谢你 因此,根据我的建议,我尝试了这一个,但是在构建过程中我得到了错误: 找不到可重写的合适方法。我试过这个 /* * Attribute to validate schools */ public class ValidateSchoolAttribut

我正在从事一个MVC项目,我需要验证特定组的电子邮件地址。例如,只有那些emailID@stanford.edu可以注册。我尝试了数据批注,但它只验证电子邮件地址,而不是子字符串。如何检查电子邮件地址是否包含@stanford.edu?先谢谢你

因此,根据我的建议,我尝试了这一个,但是在构建过程中我得到了错误: 找不到可重写的合适方法。我试过这个

/*
 * Attribute to validate schools
 */
public class ValidateSchoolAttribute : ValidationAttribute
{
    public string stanfordEmail { get; set; }
    public string harvardEmail { get; set; }

    public override bool IsValid(String value)
    {
        if (value == null){
            return true;
        }

        char[] delimiterCharacter = { '@' };
        String text = value;

        String[] words = text.Split(delimiterCharacter);

        if( words.Equals("stanford.edu") ||words.Equals("harvard.edu")  ){
               return true;
        }
        else{
              return false;
        }

    }
}

您应该设置自定义验证属性

像这样的

public类onlystanfordmailAttribute:ValidationAttribute

然后覆盖
IsValid
功能


如果您也需要客户端验证,您可以遵循

,您可以使用
[regular expression]
属性

[RegularExpression(@".*@(harvard|stanford)\.edu")]
[EmailAddress]
public string Email { get; set; }

尝试用谷歌搜索这个
stringsplitc.
,提示:user
string.split()
这是一个很棒的方法。从没想过。