我有一個消息表和另一個messageviews表。我正在尋找向個人用戶顯示未讀消息。通過我的消息表,我發送了一個新字段,用於查看當前消息是否存在任何消息瀏覽。如果他們這樣做,那麼我的視圖布爾應該返回true否則爲false(如果他們沒有查看消息)。一切工作正常,除了我無法找到User.Identity.GetUser()我目前登錄的用戶通常。我也添加了正確的用法。在模型中是否存在限制這種類型的呼叫的限制。如果是這樣,我怎麼才能找到模型中的當前用戶?如何在asp.net中查找模型中的當前用戶mvc
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;
}
}
}
解決:控制器之外你可以找到與該當前用戶 -
變種_userId = System.Web.HttpContext.Current.User.Identity.GetUserId();
您使用的是異步方法嗎?你可以展示一些你的代碼,看看我們能否更好地幫助你? –
嘗試'Thread.CurrentPrincipal.Identity.GetUserId()' – GauravKP
我得到錯誤,線程在當前上下文中不存在。我已經在上面添加了我的支票。 – DudeThatCodes