2013-11-25 59 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; }所以我不能将属性(电子邮件和电话)验证添加到一个 –