2013-11-25 184 views
0
接觸式

聲明:在下面的觀點,我可以選擇聯繫人類型的任何一個(如:手機或電子郵件或Skype ...)
如果讓我選擇移動,我應該在下面的文本框中輸入唯一的手機號碼,
如果我選擇的電子郵件,我應該請在下面的文本框中只有電子郵件詳情,

問題: 我的問題是我如何可以驗證聯繫人詳細信息文本框?
如果我有選擇的移動,它應該只接受數字,
如果選擇了電子郵件,它應該只接受電子郵件ID,如果我嘗試添加任何不必要的細節,應該顯示正確的驗證消息

我使用ASP。 NET MVC 4,我試圖用IValidatableObject但我無法弄清楚如何使用這個特殊問題驗證的ASP .NET MVC 4使用IValidatableObject

enter image description here

+1

什麼@Neel張貼的答案是有效的,但如果你想使用IValidatableObject,你只需做同樣的事情 - 在有關財產運行正則表達式如果失敗,則返回一個新的ValidateObject(「ErrorMessage here」,新列表 {「Field1」}); –

+0

@Ahmedilyas但我只有一個字段,我不能將兩個驗證都添加到一個屬性中,我的模型如下所示:public int contactTypeId {get; set;} public string TypeValue {get; set; }所以我不能將屬性(電子郵件和電話)驗證添加到一個屬性 –

+0

正確,但是您仍然可以驗證當您爲實現IValidateObject接口的對象調用驗證時想要的內容。 –

回答

1

怎麼樣讓這樣的驗證?我不知道它的正確答案或不..

[Required(ErrorMessage = "Email_id must not be empty")] 
[RegularExpression(".+\\@.+\\..+", ErrorMessage = "Please Enter valid mail id")] 
public string Email { get; set; } 

[Required(ErrorMessage = "Please enter phone number")] 
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$」, ErrorMessage = 「Enter valid number」)] 
public string Phone { get; set; } 
+0

我的模型看起來像這樣public int contactTypeId {get; set;} public string TypeValue {get; set; }所以我不能將屬性(電子郵件和電話)驗證添加到一個 –