ModelState.AddModelError здесь сообщение об ошибке, которое я дал, не показывается - PullRequest
0 голосов
/ 01 октября 2019

ModelState.AddModelError не работает при публикации того же имени пользователя в базе данных

Здесь, если имя пользователя не совпадает, будет создан новый пользователь в базе данных

public ActionResult Signup(User user)
{

    using (var context = new dbTournamentEntities())
    {
        bool check = context.Users.Any(m => m.UserName == user.UserName);

        if (check)
        {
            ModelState.AddModelError("", "User Already Exist Try Different User Name");
        }
        else
        {
            var hashpass = HashPassword(user.Password);
            user.Password = hashpass;
            context.Users.Add(user);
            context.SaveChanges();
        }
    }
    return RedirectToAction("Login");
}

1 Ответ

0 голосов
/ 01 октября 2019

Единственная причина, по которой ваш ModelState.AddModelError не работает, если проверка переменной имеет ложное значение.

Есть два возможных случая, которые вы можете искать

  1. Если ваша база данныхконтекст не имеет значения в пользователе.
  2. Если в контексте вашей базы данных присутствует имя пользователя с таким же именем, то это проблема чувствительности к регистру, попробуйте сделать прописные и строчные буквы, а затем проверить на равенство.

    bool check = context.Users.Any(m => m.UserName.ToUpper() == user.UserName.ToUpper());
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...