2015-02-24 71 views
0

我是MVC.NET的新手,我正在使用MVC4。 在一個項目中,我應該返回系統信息,如發佈數量,用戶數量等。在我的_Layout中,我定義了一個將顯示這些數據的側邊欄。 這裏是我的側邊欄DIV使用緩存和數據在佈局MVC 4中渲染局部視圖

<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中。這裏是圖片

enter image description here

謝謝您的幫助:)

+1

是否嘗試@ {Html.RenderAction(「GatherSystemInfo」,「Home」)}而不是@ {Html.Action(「GatherSystemInfo」,「Home」).ToString();} – sakir 2015-02-24 07:03:53

+1

使用'RenderAction()'in 'Action()'的地方' – Tushar 2015-02-24 07:05:27

+0

謝謝你的朋友:)它的工作原理! – 2015-02-24 07:05:54

回答

2

Html.Action() - 輸出字符串

Html.RenderAction() - 直接渲染到響應\

解決方案:使用RenderAction()Action()

的地方
+0

謝謝巴迪。有用。另一個問題,我的緩存語法是否正確?它工作嗎? – 2015-02-24 07:07:38

+1

是的語法是正確的...你也可以設置'NoStore'你的chaching值爲False – Tushar 2015-02-24 07:11:00

+1

謝謝你的朋友@Tushar Gupta – 2015-02-24 07:13:29