好的,你問了一個建議,所以我會盡量保持高級。
首先,你要實現兩個觀點:
- 指數 - 這是可以被索引的ActionResult functon返回控制器上你的看法。
統計 - 這是包含在索引視圖這樣的局部視圖:
<div id="refreshme">
@Html.Partial("_Stats", Model.Stats)
</div>
你會注意到,我在一個包含統計對象模型通過。這個統計數據對象被傳遞到你的「統計」視圖,它將知道如何渲染它。
接下來,您需要在您的HomeController中添加一個新的操作方法,您猜對了,Stats!這個ActionResult將只顯示Stats視圖並將其作爲HTML返回。您還需要設置的[HttpGet]
標誌就可以了,因此可以接受GET請求:
[HttpGet]
public ActionResult Stats(...)
{
//...
return View("_Stats", Model);
}
現在,對於JS方:
function refresh() {
$.get('/index/post', function(result) {
$('#refreshme').html(result);
});
}
setInterval(refresh, 3000);
所以目標是這樣:
- 將您想要刷新的部分從頁面的其餘部分中刪除並放入局部視圖中。
- 添加一個僅顯示該局部視圖的控制器操作方法。
- 在您的索引視圖中包含該部分視圖,其中包含一個容器,以便它可以輕鬆更新。
- 添加一個javascript函數,它將從控制器獲取最新的視圖渲染並覆蓋頁面上的當前統計信息。
希望這會讓你朝着正確的方向前進。
感謝您的回覆。 我已經刪除了該部分,並把它放在一個稱爲stats的部分視圖。但是,我的索引視圖文件中無法識別該渲染函數。我GOOGLE了它,但似乎無法找到如何讓程序識別它。 – Slethron
對不起,我正在盲目寫作,並打算使用'@ Html.Partial'。我的錯。 http://rachelappel.com/razor/partial-views-in-asp-net-mvc-3-w-the-razor-view-engine/ –
謝謝,但現在它不承認這一行中的模型參數: return View(「_ Stats」,Model); – Slethron