1

所以我在我的 _Layout 页面中添加了以下内容:

 @Html.Action("ActiveMails", "Home")

这会调用以下操作:

public void ActiveMails()
{
    var ooo = from s in db.Message
              where (s.SentTo.ToLower() == HttpContext.User.Identity.Name.ToLower())
              && s.Read != "1"
              && s.Active == "1"
              select s;
    ViewBag.UnreadMessages = ooo.Count();
}

问题是当页面加载时它不保留 ViewBag 信息。有什么办法可以让这个代码在每个请求上运行,但保留 ViewBag 信息?

4

1 回答 1

0

为什么不将返回方法类型更改为 JsonResult?在这种情况下,您的 ViewBag 不会改变。

    public ActionResult ActiveEmails()
    {
        var ooo = from s in db.Message
          where (s.SentTo.ToLower() == HttpContext.User.Identity.Name.ToLower())
          && s.Read != "1"
          && s.Active == "1"
          select s;

        return Json(ooo.Count(), JsonRequestBehavior.AllowGet);
    }
于 2013-09-29T09:17:46.557 回答