-2
我需要知道如何在asp.net MVC中实现可选验证。像我LoginViewModel我有3个领域(1)电子邮件,(2)用户名(3)密码在查看用户可以在同一个输入框中输入电子邮件或密码,如果我把[必填]都在电子邮件和用户名字段它不工作。所以让我知道我在这种情况下如何处理它。ASP.Net中的可选验证MVC
感谢 Sohaib贾韦德
我需要知道如何在asp.net MVC中实现可选验证。像我LoginViewModel我有3个领域(1)电子邮件,(2)用户名(3)密码在查看用户可以在同一个输入框中输入电子邮件或密码,如果我把[必填]都在电子邮件和用户名字段它不工作。所以让我知道我在这种情况下如何处理它。ASP.Net中的可选验证MVC
感谢 Sohaib贾韦德
虽然我不同意,你应该有一个单一的输入字段为password
和email address
,这里是你会如何在控制器内执行有效性验证您的来电浏览模式:
public ActionResult Index(LoginViewModel requestResponseModel)
{
// Has an email or password been entered?
if (string.IsNullOrWhiteSpace(requestResponseModel.EmailOrPassword))
{
this.ModelState.AddModelError("EmailOrPassword", "Please enter an email or a password");
}
else
{
try
{
// Is the input a valid email address?
var addr = new System.Net.Mail.MailAddress(email);
return addr.Address == email;
}
catch
{
// Not valid email, is it a valid password?
if (System.Text.regularExpressions.Regex.IsMatch(requestResponseModel.EmailOrPassword, "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,15}$"))
{
this.ModelState.AddModelError("EmailOrPassword", "Value entered is not a valid email address or password");
}
}
}
// Did it pass validation?
if (this.ModelState.IsValid())
{
// Register the user here...
}
return View(requestResponseModel);
}
你也可以在你的视图模型的IValidatableObject
Validate()
方法中实现相同的代码。您可以在模型上使用[Required]
,并在控制器内使用此验证。
您的视图中有多少个输入框?你说用户可以在同一个输入框中输入电子邮件或密码。所以1用于电子邮件/密码和1用户名? – singsuyash
为什么你没有每个领域的输入框? – Ala
我有一个输入框,用户可以输入电子邮件或用户名,正如我们在facebook中看到的,用户可以在同一输入框中选择输入电子邮件或电话号码。 –