Remoto de validação do MVC5 ViewModel
Estou tentando validar um nome de usuário durante o mesmo estágio da validação do modelo de exibição. O restante da validação funciona bem. No entanto, estou tentando usar o seguinte trecho para verificar se um nome de usuário já está em uso ou não:
// Cut down code to keep it simple.
public class UserAccountRegistration
{
[Remote("CheckUsername", "Validation", ErrorMessage = "Username already exists.")]
public string Username { get; set; }
}
Eu tenho um controlador chamado "ValidationController.cs" no diretório Controllers, esse controlador contém o seguinte:
using System;
using System.Web.Mvc;
using Test.Helpers;
using System.Data.SqlClient;
using System.Data;
namespace Test.Controllers
{
public class ValidationController : Controller
{
// GET: Validation
public ActionResult Index()
{
return View();
}
[HttpGet]
public JsonResult CheckUsername(string Username)
{
Encryption hlpEncryption = new Encryption();
DataConnections hlpDBConn = new DataConnections();
bool bUsernameAlreadyExists = false;
string sEncUsername = hlpEncryption.Encrypt(p_sUsername);
SqlConnection conn = hlpDBConn.DBConnection();
using (SqlCommand cmd = new SqlCommand("CheckIfUsernameExists", conn) { CommandType = CommandType.StoredProcedure })
{
cmd.Parameters.AddWithValue("@Username", sEncUsername);
conn.Open();
bUsernameAlreadyExists = (Convert.ToInt16(cmd.ExecuteScalar()) > 0);
conn.Close();
}
return Json(bUsernameAlreadyExists, JsonRequestBehavior.AllowGet);
}
}
}
No entanto, oCheckUsername
método nem sequer é atingido, o que estou fazendo de errado?
Obrigado.