显示用户的特定数据

时间:2012-02-20 19:09:40

标签: asp.net-mvc-3

我遇到类似于此主题的问题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”

我做错了什么?

2 个答案:

答案 0 :(得分: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;

我不知道你的UserId是什么(类型明智)所以不能在这里给你100%答案

答案 1 :(得分:0)

这个怎么样:

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