c# - MVC - 如何检查用户名是否尚未被使用?

标签 c# asp.net-mvc entity-framework

我正在使用数据库优先,并通过 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/

相关文章:

c# - 在 C# 中样式化 KML 文件

asp.net-mvc - 在属性值中转义 @

c# - MVC 4 - 如何将模型数据传递给局部 View ?

c# - 当 POCO 文件位于单独的项目中时将 EF 指向数据库

c# - 修剪数组中的所有字符串

c# - C# 中的 Linq 列表排名

c# - 有限小数的正则表达式

asp.net-mvc - 想要使用来自mvc的index.html

c# - 部署使用 LINQ to Entities 的应用程序

c# - 如何提高性能 EF Linq to Entities