使用缓存和数据在布局 MVC 4 中渲染局部视图

Render Partial View in Layout MVC 4 with Caching and Data

我是 MVC.NET 的新手,我正在使用 MVC4 。 在一个项目中,我应该 return 系统信息,如 Post 计数、用户计数等。在我的 _Layout 中,我定义了一个将显示这些数据的边栏。 这是我的侧边栏 div

<div class="sideElement">
     <div class="header">
          مشخصات سیستم
     </div>
     <div class="body">
          @{Html.Action("GatherSystemInfo","Home").ToString();}
     </div>
</div>

我的 GatherSystemInfo 操作是这样的: 当然我已经使用静态数据进行测试

    [OutputCache(Duration=900, VaryByParam = "none")]
    [ChildActionOnly]
    public ActionResult GatherSystemInfo(SystemInformation model = null)
    {            
        model.QuestionCount = 10930;
        model.ToturialCount = 10353;
        model.UserCount = 120123;
        model.ProjectsNumber = 10231;
        model.DateTime = DateTime.Now.ToLongTimeString();
        model.OnlineUsers = 28;
        return PartialView("_SystemInfo", model);
    }

我的局部视图是这样的:

@model Persiangeeks.Models.SystemInformation

<div class="infoContainer">
    <div class="rightFloated sysInfoTitle">تعداد سوالات ثبت شده : </div>
    <div class="leftFloated sysInfoValue">@Html.Raw(Model.QuestionCount)</div>
    <div class="clear" ></div>
</div>
<div class="infoContainer">
    <div class="rightFloated sysInfoTitle">تعداد آموزشهای موجود : </div>
    <div class="leftFloated sysInfoValue">@Html.Raw(Model.ToturialCount)</div>
    <div class="clear" ></div>
</div>
<div class="infoContainer">
    <div class="rightFloated sysInfoTitle">تعداد پروژه های موجود : </div>
    <div class="leftFloated sysInfoValue">@Html.Raw(Model.ProjectsNumber)</div>
    <div class="clear" ></div>
</div>
<div class="infoContainer">
    <div class="rightFloated sysInfoTitle">تعداد کاربران ثبت شده : </div>
    <div class="leftFloated sysInfoValue">@Html.Raw(Model.UserCount) نفر</div>
    <div class="clear" ></div>
</div>
<div class="infoContainer">
    <div class="rightFloated sysInfoTitle">تعداد کاربران آنلاین : </div>
    <div class="leftFloated sysInfoValue">@Html.Raw(Model.OnlineUsers) نفر</div>
    <div class="clear" ></div>
</div>

但是当我 运行 我的项目时,我的侧边栏中没有任何内容可显示 div。这是图片

感谢您的帮助:)

Html.Action() – 输出字符串

Html.RenderAction() – 直接渲染响应\

解决方法:RenderAction()代替Action()