Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 自定义IModelBinder和数据库访问_Asp.net Mvc_Model Binding_Imodelbinder - Fatal编程技术网

Asp.net mvc 自定义IModelBinder和数据库访问

Asp.net mvc 自定义IModelBinder和数据库访问,asp.net-mvc,model-binding,imodelbinder,Asp.net Mvc,Model Binding,Imodelbinder,对于asp.net mvc项目中的一个用户对象,我编写了一个自定义modelbinder来检查密码是否有效以及是否输入了两个匹配的密码等 但是登录名必须是唯一的,我想知道我是否可以在modelbinder中检查它,或者这被认为是不好的做法 问题是,在你到达控制器之前就调用了绑定器,所以我会有两个dataContext实例在周围浮动,从而有多个到数据库的连接,我想我可以为此建立一个工厂 这是我现在在控制器中执行的操作的代码片段: // POST: /Users/Create [AcceptVerb

对于asp.net mvc项目中的一个用户对象,我编写了一个自定义modelbinder来检查密码是否有效以及是否输入了两个匹配的密码等

但是登录名必须是唯一的,我想知道我是否可以在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)
}

我不会在模型活页夹中检查用户名的可用性。我认为在这种情况下,
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)
}

这和我做的很相似,所以我想这是正确的方法!这和我做的很相似,所以我想这是正确的方法!