Проверьте, существует ли пользователь в ASP.NET MVC - PullRequest
0 голосов
/ 18 января 2019

Это контроллер:

public class UserController : Controller
{
    ResturantEntities db = new ResturantEntities();

    public ActionResult Index()
    {
        var data = db.User.OrderByDescending(z => z.ID).Select(s => s).ToList();
        return View(data);
    }

    public ActionResult Register()
    {

        return View();
    }
    [HttpPost]
    public ActionResult Register(UserVM obj)
    {
        if (ModelState.IsValid)
        {

            User newobj = new User();
            newobj.UserName = obj.UserName;
            newobj.Email = obj.Email;
            newobj.Password = obj.Password;
            newobj.Address = obj.Address;
            db.User.Add(newobj);
            db.SaveChanges();
            return RedirectToAction("Index");

        }
        else
        {
            return RedirectToAction("Register");
        }
    }
}

Я хочу добавить условие if перед newobj.Email = obj.Email;, чтобы проверить, существует ли электронная почта в дБ или нет;если не существует, то будет добавлено.

1 Ответ

0 голосов
/ 18 января 2019

Первое приветствие в переполнении стека.

Теперь напишите ваш Register POST метод следующим образом:

[HttpPost]
public ActionResult Register(UserVM obj)
{
    if (ModelState.IsValid)
    {
        var isEmailAlreadyExists = db.User.Any(x => x.Email == obj.Email);
        if(isEmailAlreadyExists)
        {
            ModelState.AddModelError("Email", "User with this email already exists");
            return View(obj)
        }

        User newobj = new User();
        newobj.UserName = obj.UserName;
        newobj.Email = obj.Email;
        newobj.Password = obj.Password;
        newobj.Address = obj.Address;
        db.User.Add(newobj);
        db.SaveChanges();
        return RedirectToAction("Index");

    }

    return View(obj)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...