2012-02-20 90 views
0

我有類似這樣的主題http://forums.asp.net/t/1763534.aspx/1顯示特定數據爲用戶

我必須表明數據基於他們的用戶名客戶的問題。我沒有創造一個新的話題,因爲我很久以前就已經完成了,沒有人回覆。我問你,因爲你似乎知道它比其他人更...

這是我的控制器

public ActionResult Index() 
{ 
    MembershipUser currentUser = 
     Membership.GetUser(User.Identity.Name, true /* userIsOnline */); 


    ViewBag.UsersRecord = currentUser.ProviderUserKey; 

    var details = from t in db.Employes 
        where t.UserId ==ViewBag.UsersRecord 
        select t; 

    return View(details.ToList()); 

} 

奇怪的是,Visual Studio中顯示我在這裏一個錯誤

where t.UserId == ViewBag.UsersRecord 

「的表達樹可能不包含dinamyc在操作中「

我已經做了一些事恩錯了嗎?

+1

抱歉,對於stackoverflow是新的,我知道他必須每次都這樣做。我拿了我所有的答案,應該沒問題。 – Mirko 2012-03-12 09:50:11

+0

沒關係 - 只是想向你指出這一點 - 當你開始SO時並不明顯。你做得很好 - 享受吧! – 2012-03-12 09:54:19

回答

2

您不能使用動態,因爲動態是在編譯時確定的。 嘗試:

 
Guid userId = (Guid)ViewBag.UsersRecord; 

var details = from t in db.Employes 
        where t.UserId == userId.ToString() //if you are using a string guid, otherwise remove ToString() 
        select t; 

//or simply 

var details = from t in db.Employes 
        where t.UserId == (Guid)currentUser.ProviderUserKey 
        select t; 

我不知道你的用戶ID是什麼(類型明智的),所以不能給你一個100%的答案在這裏

+0

UserId我是一個GUID類型。我需要與UserId Employe ID進行比較,以僅顯示具有相同ID的數據。 – Mirko 2012-02-21 05:17:01

+0

好的,在這種情況下看到上面的第二種情況(我編輯) – 2012-02-21 17:07:01

0

這個怎麼樣:

where t.UserId == new Guid(ViewBag.UsersRecord.ToString());