2014-11-08 80 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

相關問題