mvc重复用户验证错误

Fer*_*ren 3 c# model-view-controller asp.net-mvc-validation visual-studio-2012 visual-studio-2013

我怎样才能创建一个验证,我只能创建一个具有该名称的用户

我的代码

这是

  [HttpPost]
        public ActionResult Create(Klant klant)
        {
            ModelState.AddModelError("Firma", "Firma already exists");  

            if (ModelState.IsValid)
            {

                db.Klanten.Add(klant);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(klant);
        }
Run Code Online (Sandbox Code Playgroud)

现在我可以创建0个用户,因为我总是得到我的addmodelerror已经存在的错误

Jon*_*lis 5

首先,检查您的模型状态是否有效.如果不是,请让用户知道有一些无效字段.

如果有效,请检查该用户名是否已存在,如果已存在,请返回带有添加的模型错误的模型:

public ActionResult Create(Klant klant)
{
    if (ModelState.IsValid)
    {
        if(db.Klanten.Any(k => k.Username == klant.Username)
           ModelState.AddModelError("Firma", "Firma already exists");
        else
        {
           db.Klanten.Add(klant);
           db.SaveChanges();
           return RedirectToAction("Index");
        }
    }

    return View(klant);
}
Run Code Online (Sandbox Code Playgroud)

这种方法更加用户友好,因为他们可以拥有的最后一个错误是已经使用的用户名,他们只需要改变它.