我正在为我的网站创建一个简单的私人消息系统。这是模型:
public class PrivateMessage : GlobalViewModel
{
[Key]
public int MessageId { get; set; }
public bool IsRead { get; set; }
public DateTime CreatedDate { get; set; }
[MaxLength(100)]
public string Subject { get; set; }
[MaxLength(2500)]
public string Body { get; set; }
public virtual UserProfile Sender { get; set; }
public virtual UserProfile Receiver { get; set; }
}
如果您有任何新消息,我想检查每个页面请求,以便通知用户。因此,我制作了一个基本视图模型,其中包含:
public class GlobalViewModel
{
[NotMapped]
public virtual int NewMessages { get; set; }
}
所有其他视图模型都继承自此类。为了获取用户的新私人消息的数量,我这样做:
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
DBContext db = new DBContext();
int userID = (int)Membership.GetUser().ProviderUserKey;
int newMessages = db.PrivateMessages.Where(a => a.Receiver.UserId == userID && a.IsRead == false).Count();
base.OnActionExecuted(filterContext);
}
我来到这里,每个动作都确实调用了 OnActionExecuting。但我的问题是:
如何将 newMessages 添加到 GlobalViewModel?
我最终想要做的是在“主”视图中调用它
You have @Model.NewMessages new messages