有关在我的asp.net MVC项目中的用户对象,我写了一个自定义的模型绑定器来检查密码是否有效,以及是否输入了两个匹配的密码等。

在登录名必须是唯一的,虽然,我不知道我是否能在ModelBinder的检查是否有或这被认为是不好的做法?

的事情是,粘合剂被调用之前,你甚至可以到控制器,所以我会漂浮在我的DataContext的两个实例,因此多个连接到数据库,我想我可以设立了工厂,各种各样的为

这是我在控制器现在做的代码片断:

// POST: /Users/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Users user)
{            
    myDataContext db = new myDataContext();

    if (!ViewData.ModelState.IsValid)
    {                
        return View(user);
    }            

    Users testUser = db.Users.SingleOrDefault(p => p.LoginNaam == user.LoginNaam);
    if (testUser != null) { //Error stuff here }
}
有帮助吗?

解决方案

我不会检查模型绑定的用户名的可用性。我认为这是CreateUser方法的工作做,在这种情况下。

因此,动作会是这样:

// POST: /Users/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Users user)
{            
    myDataContext db = new myDataContext();

    if (!ViewData.ModelState.IsValid)
    {                
        return View(user);
    }

    try {
        db.CreateUser(User);
    }
    catch (ArgumentException e) {
        ModelState.AddModelError(e.ParamName, e.Message);
        return View(user);
    }
    return View("UserCreated", user)
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top