2009-04-28 69 views
1

對於我的asp.net MVC項目中的用戶對象,我寫了一個自定義的模型綁定器來檢查密碼是否有效,以及是否輸入了兩個匹配的密碼等。定製IModelBinder和數據庫訪問

的登錄名需要儘管是獨一無二的,但我想知道我是否可以在模型綁定器中檢查它,或者這被認爲是不好的做法?

事情是,即使你到達控制器之前調用活頁夾,所以我會有我的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 } 
} 

回答

1

我不會檢查模型綁定的用戶名可用性。在這種情況下,我認爲這是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) 
} 
+0

這與我在做什麼,所以我想這是走正道! – Morph 2009-05-02 19:55:31