Remote Validation in ASP.Net MVC 3 - the procedure to prevent to register duplicate username

111 Views Asked by At

I have created mysql database at smarterasp.net and connected it Now, I don't want to have anyone register with a duplicate username

This is my Model :

   public class Employeeregistration
    {
    public int id { get; set; }

    [Required]
    [Display(Name = "User Name")]
    [Remote("doesUserNameExist", "Account", ErrorMessage = "User name 
    already exists. Please enter a different user name.")]
    public string username { get; set; }

    [Required]
    public string password { get; set; }
    [EmailAddress]
    public string email { get; set; }
    [Phone]
    public string phone { get; set; }
    [Required]
    public string country { get; set; }
}

Action

   public IHttpActionResult postuser(Employeeregistration ER)
    {
        string mainconn =        
    ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
        MySqlConnection sqlconn = new MySqlConnection(mainconn);
        string sqlquery = "insert into user 
        (username,password,email,phone,country) values 
        (@username,@password,@email,@phone,@country)";
        MySqlCommand sqlcomm = new MySqlCommand(sqlquery, sqlconn);
        sqlconn.Open();

        sqlcomm.Parameters.AddWithValue("@username", ER.username);
        sqlcomm.Parameters.AddWithValue("@password", ER.password);
        sqlcomm.Parameters.AddWithValue("@email", ER.email);
        sqlcomm.Parameters.AddWithValue("@phone", ER.phone);
        sqlcomm.Parameters.AddWithValue("@country", ER.country);
        sqlcomm.ExecuteNonQuery();


        sqlconn.Close();
        return Ok(ER);
    }

I am trying below code but not working.

Action:

 [HttpPost]
 public JsonResult doesUserNameExist(string UserName) {
 var user = Membership.GetUser(UserName);
 return Json(user == null);}

Page:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" 
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" 
type="text/javascript"> 
 </script>

So, Can anyone please give me correct code?

0

There are 0 best solutions below