使用缓存和数据在布局 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()
我是 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()