Je suggère d'oublier remote
parce que si vous utilisez le code premier cadre de l'entité, vous ne pouvez pas avoir plus d'une unique
colonne dans votre table. Je voudrais juste écrire le code pour comme ceci:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Insert a new user into the database
using (UsersContext db = new UsersContext())
{
UserProfile email = db.UserProfiles.FirstOrDefault(u => u.Email.ToLower() == model.Email.ToLower());
try
{
// Check if email already exists
if (email == null)
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email });
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("Email", "Email address already exists. Please enter a different email address.");
}
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
}
Remplacer l'email avec la propriété que vous voulez valider. À la publication, cela se comparera aux entrées avec ce qui existe déjà dans votre base de données, et en fonction des résultats, il vous donnera des commentaires. Rejette une exception si de telles données existent.