好的,你问了一个建议,所以我会尽量保持高级。
首先,你要实现两个观点:
- 指数 - 这是可以被索引的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