2014-11-08 44 views
1

我正在开发一个MVC项目,我需要验证特定组的电子邮件地址。例如,只有具有[email protected]的人才可以注册。我确实尝试了数据注释,但它只验证电子邮件地址,而不是子字符串。我如何检查电子邮件地址是否包含@ 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; 
     } 

    } 
} 

回答

2

你可以使用一个[RegularExpression]属性

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

这是一个很棒的方式来做到这一点。从来没有想过它。 – 2014-11-09 02:57:06

1

您应该自定义验证属性。

像这样

public class OnlyStanfordEmailAttribute: ValidationAttribute

,然后覆盖IsValid功能。

如果你想客户端验证也可以按照this tutorial

+0

尝试使用Google这个'字符串分割C#'提示:用户'string.Split()' – dotctor 2014-11-09 00:15:20

相关问题