无法使用 [Remote] 数据注释属性验证现有电子邮件 ID

Unable to Validate Existing email Id using [Remote] data annotation attribute(无法使用 [Remote] 数据注释属性验证现有电子邮件 ID)
本文介绍了无法使用 [Remote] 数据注释属性验证现有电子邮件 ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用模型中的 [远程] 数据注释来验证数据库中电子邮件 ID 的存在.但是当我调用远程 JsonResult Action 方法时,参数将为空,结果将始终为 false 并显示错误消息.我的代码有什么问题?

I want to validate existence of Email Id in database using [Remote] data Annotation in Model. But when I call a remote JsonResult Action method the parameter will be null and the result will be always be false and error message will be displayed. What is the problem in my code?

模型:

public class RegisterModel
{
    [Required(ErrorMessage = "Email is Required!", AllowEmptyStrings = false)]
    [Remote("IsEmailIdExists", "Account", ErrorMessage = "Email Id already exists in Database")]
    [Display(Name = "Email Id")]
    [RegularExpression("[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}", ErrorMessage = "Invalid Email Id")]
    public string Email { get; set; }

    [Required(ErrorMessage = "Password is Required!", AllowEmptyStrings = false)]
    [DataType(DataType.Password)]
    [RegularExpression(@"(?=^.{8,15}$)((?=.*d)(?=.*[A-Z])(?=.*[a-z])|(?=.*d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*", ErrorMessage = "Invalid Password!")]
    public string Password { get; set; }

    [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "Confirm password dose not match!")]
    [Required(ErrorMessage = "Confirm Password is Required!")]
    [DataType(DataType.Password)]
    public string ConfirmPassword { get; set; }
}


public class EmailExists
    {
         public bool EmailCheck(string _email)
         {
              try
              {
                 var con = new SqlConnection();
                 con.ConnectionString = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
                 SqlCommand com = new SqlCommand("spCheckEmail", con);
                 com.CommandType = CommandType.StoredProcedure;
                 com.Parameters.Add("@uname", SqlDbType.NVarChar, -1).Value = _email;
                 con.Open();
                 com.CommandTimeout = 120;
                 SqlDataReader reader = com.ExecuteReader();
                 if (reader.HasRows)
                 {
                     if (reader.Read())
                     {
                          if (reader["Active"].ToString() == "True")
                          {
                               reader.Dispose();
                               com.Dispose();
                               return true;
                          }
                          else
                          {
                               return false;
                          }
                     }
                     else
                     {
                          return false;
                     }
                 }
                 else
                 {
                     reader.Dispose();
                     com.Dispose();
                     return false;
                 }
                 con.Close();
                 com.Dispose();
            }
            catch(Exception ex)
            {
                return false;
            }
       }
   }

帐户控制器

public JsonResult IsEmailIdExists(string EmailId) -> Always Null

{
      Model.EmailExists emailCheck = new FresherModel.EmailExists();
      if(!emailCheck.EmailCheck(EmailId))
      {
           return Json(false);
      }
      else
      {
          return Json(true);
      }
}

推荐答案

您的资产名称是 Email.更改您的操作方法的签名以匹配

The name of your property is Email. Change the signature of your action method to match

public JsonResult IsEmailIdExists(string Email)
{
  .....

这篇关于无法使用 [Remote] 数据注释属性验证现有电子邮件 ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
SSIS: Model design issue causing duplications - can two fact tables be connected?(SSIS:模型设计问题导致重复-两个事实表可以连接吗?)
SQL Server Graph Database - shortest path using multiple edge types(SQL Server图形数据库-使用多种边类型的最短路径)
Invalid column name when using EF Core filtered includes(使用EF核心过滤包括时无效的列名)
How should make faster SQL Server filtering procedure with many parameters(如何让多参数的SQL Server过滤程序更快)
How can I generate an entity–relationship (ER) diagram of a database using Microsoft SQL Server Management Studio?(如何使用Microsoft SQL Server Management Studio生成数据库的实体关系(ER)图?)