我遇到类似于此主题的问题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”
我做错了什么?
答案 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());