我正在使用数据库优先,并通过 ViewModel 验证我的输入。但是,我想检查 UserName
是否已经被 db 占用。我怎么做?这是我设法达到的程度(我可以验证并保存):
[Required]
[StringLength(50)]
[MinLength(3, ErrorMessage = "You must at least have 3 letters")]
public string UserName { get; set; }
下面是我在 Controller 中的注册码:
[HttpGet]
public ActionResult Register() {
return View();
}
[HttpPost]
public ActionResult Register(UserVIewModel reg) {
if (ModelState.IsValid)
{
var m = new User {
UserName = reg.UserName,
Email = reg.Email,
FirstName = reg.FirstName,
LastName = reg.LastName,
Password = reg.Password
};
db.Users.Add(m);
db.SaveChanges();
return RedirectToAction("Login");
}
return View();
}
最佳答案
这是在 Register() 方法中检查用户的方法
[HttpPost]
public ActionResult Register(UserVIewModel reg) {
if (ModelState.IsValid)
{
if (db.Users.Where(u => u.UserName == reg.UserName).Any())
{
//Do what do u need to do...
}
else
{
var m = new User {
UserName = reg.UserName,
Email = reg.Email,
FirstName = reg.FirstName,
LastName = reg.LastName,
Password = reg.Password
};
db.Users.Add(m);
db.SaveChanges();
return RedirectToAction("Login");
}
}
return View();
}
关于c# - MVC - 如何检查用户名是否尚未被使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39801635/