C# ASP.NET MVC4中的多个远程验证属性
我遇到了一个我不知道如何解决的问题。C# ASP.NET MVC4中的多个远程验证属性,c#,asp.net,asp.net-mvc,validation,attributes,C#,Asp.net,Asp.net Mvc,Validation,Attributes,我遇到了一个我不知道如何解决的问题。 我在模型中进行了远程验证,如下所示: [Required] [Display(Name = "Social Security Number:")] [Remote("IsSocialSecurityNumberValid", "Applicant", ErrorMessage = "Invalid.")] public string SocialSecurityNumber { get; set; } 但我想申请的另一个验证是: [Remote("Soci
我在模型中进行了远程验证,如下所示:
[Required]
[Display(Name = "Social Security Number:")]
[Remote("IsSocialSecurityNumberValid", "Applicant", ErrorMessage = "Invalid.")]
public string SocialSecurityNumber { get; set; }
但我想申请的另一个验证是:
[Remote("SocialSecurityNumberExists", "Applicant", ErrorMessage = "Already exists.")]
但是mvc不允许我添加两个远程属性。
我怎样才能解决这个问题?感谢您的帮助。请参见下面的示例:
[Required]
[Display(Name = "Social Security Number:")]
[Remote("ValidSocialSecurityNumber", "Applicant")]
public string SocialSecurityNumber { get; set; }
你的行动
public JsonResult ValidSocialSecurityNumber([Bind(Prefix = "SocialSecurityNumber ")] string ssn)
{
if (!isSocialSecurityNumberValid)
{
return Json("Invalid.", JsonRequestBehavior.AllowGet);
}
if (isSocialSecurityNumberExists)
{
return Json("Already exists.", JsonRequestBehavior.AllowGet);
}
return Json(true, JsonRequestBehavior.AllowGet);
}
创建一个“常规”远程验证操作,该操作返回
IsSocialSecurityNumberValid
和SocialSecurityNumberExists
方法的组合结果。但对于每种情况,我需要不同的消息。。。我怎么做呢?我想不出一个简单的解决方案不需要修改元数据或某种JavaScript操作。如果一个通用的“SSN无效或存在”消息是不可能的,您将需要求助于元数据操作,这在controller中并不是一件令人兴奋的事情……好吧,javascript在我看来并不是一个坏方法。那么,您认为在javascript函数中调用服务器两次并通过两个不同的操作显示正确的验证是一个好主意吗?我已经想过了,但是害怕做一些“胡扯”…为什么要做两次?只需调用它一次(在“常规”远程验证操作中),并期望得到一条“错误消息”。然后把它放在你的财产上。但我认为在这种情况下,我仍然只验证其中一个案例。附加属性应该是另一个…嗨@Giordanoguiliano,我知道了。让我更新我的答案。只使用一个远程验证功能,您可以返回不同的错误消息。哦,很好的一个。很简单。我会试试看,然后告诉你效果如何。非常感谢你的帮助。我仍然是MVC的先发球员^_^没问题。我们都在学习。在使用前,您需要实现isSocialSecurityNumberValid和ISSocialSecurityNumberLists。希望能有帮助。