我有一个消息表和另一个messageviews表。我希望向单个用户显示未读消息。通过我的消息表,我发送了一个新字段,查看当前消息是否存在任何消息视图。如果他们这样做,那么我的Viewed bool应该返回true,否则为false(如果他们没有查看该消息)。一切正常,除了我无法像往常一样找不到User.Identity.GetUser()的当前登录用户。我也添加了正确的用法。模型中是否存在限制此类呼叫的限制。如果是这样,我如何在模型中找到当前用户?
public bool Viewed
{
get
{
ApplicationDbContext db = new ApplicationDbContext();
//var _userId = User.Identity.GetUserId();
var _userId = Thread.CurrentPrincipal.Identity.GetUserId();
List<MessageView> m_List = db.MessageView.Where(u => u.UserId == _userId && u.MessageId == O_MessageId).ToList();
var count = m_List.Count();
if (count >= 1)
{
return true;
}
else
{
return false;
}
}
}
已解决:在控制器外部,您可以找到当前用户 -
var _userId = System.Web.HttpContext.Current.User.Identity.GetUserId();
答案 0 :(得分:0)
在控制器外部,您可以找到当前用户: var _userId = System.Web.HttpContext.Current.User.Identity.GetUserId();