2016-05-05 96 views
0

我目前正在製作一個項目,用戶應該能夠將其他用戶添加到組中。我製作了一個文本框,用戶可以在其中輸入他想添加的其他用戶的電子郵件地址。我的計劃是將此文本與數據庫中的表進行比較,以查看它目前是否存在。檢查數據庫中的用戶名

這是我正在試圖做到這一點在我的控制器:

[HttpPost] 
public ActionResult Manage(GroupManage gm) 
{ 
    HttpCookie groupId = new HttpCookie("selectBoxValue"); 
    groupId = Request.Cookies["selectBoxValue"]; 
    int user = Convert.ToInt32(groupId.Value); 

    if (gm.addUser == gm.ApplicationUser.Email) 
    { 
     var groupmember = new GroupUser { ApplicationUserId = gm.ApplicationUser.Id, GroupId = user }; 
     db.GroupUsers.Add(groupmember); 
     db.SaveChanges(); 
    } 

    return View(); 
} 

運行此我得到的錯誤:

Object reference not set to an instance of an object.

在我調試的ApplicationUser.Emailnull(我用它來比較我的if聲明)。雖然gm.addUser包含正確的電子郵件地址。所以我從文本框中獲得正確的輸入。但是我不明白如何將我的輸入與數據庫進行比較。

+2

可能重複[什麼是NullReferenceException,以及如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix -it) – yaakov

+0

哪裏是來自數據庫的值? –

+0

我希望來自數據庫的值可以通過ApplicationUser獲得,但是在我的調試器中它變成了空值。我錯在哪裏? – Seb

回答

1
if (db.ApplicationUser.Any(x => x.EmailAdress.ToUpper() == gm.addUser.ToUpper()) 
{ 
    // do something 
} 

如果數據庫表中的任何電子郵件地址ApplicationUser比賽gm.addUser然後做一些

.ToUpper被用來做比較更有效的..所以,如果你有一個電子郵件地址[email protected]在你的數據庫和有人輸入[email protected]將通過並將其添加到您的數據庫..但.ToUpper將數據庫值和用戶值更改爲所有大小並以這種方式進行比較。

相關問題