Хорошо, вы запросили предложение, поэтому я постараюсь остаться на высоком уровне.
Во-первых, вам нужно реализовать два представления:
- Индекс -Это ваше представление, возвращаемое вашей функцией Index ActionResult на вашем контроллере.
Статистика - Это частичное представление , включенное в представление индекса как таковое:
<div id="refreshme">
@Html.Partial("_Stats", Model.Stats)
</div>
Вы заметите, что я передал в Model, которая содержит объект статистики.Этот объект статистики передается в представление «Статистика», которое будет знать, как его отобразить.
Затем вам нужно добавить новый метод действия в свой HomeController, который называется, как вы уже догадались, Stats!Этот ActionResult просто отобразит представление Stats и вернет его в формате HTML.Вы также захотите установить флаг [HttpGet]
, чтобы он мог принимать запросы на получение:
[HttpGet]
public ActionResult Stats(...)
{
//...
return View("_Stats", Model);
}
Теперь для стороны JS:
function refresh() {
$.get('/index/post', function(result) {
$('#refreshme').html(result);
});
}
setInterval(refresh, 3000);
Итак, цели
- Уберите свою часть, которую вы хотите обновить, с остальной части страницы и поместите ее в частичное представление.
- Добавьте метод действия контроллера, который отображает только эточастичное представление.
- Включите это частичное представление в представление Index с контейнером, обернутым вокруг него, чтобы его можно было легко обновлять.
- Добавьте функцию javascript, которая будет получать последнюю визуализацию представления изКонтроллер и переписать текущую статистику на странице.
Надеюсь, это поможет вам двигаться в правильном направлении.