В контроллере у меня есть какое-то значение, которое меняется каждые 10 секунд, я передаю это значение ViewBag. проблема в том, что значение в представлении не изменяется никогда, оно показывает только первое значение при загрузке страницы.
Вот мой код:
public class LonLat
{
public int Lon { get; set; }
public int Lat { get; set; }
}
public ActionResult DrawPath()
{
ViewBag.Message = "Your application description page.";
Response.AddHeader("Refresh", "5");
SetTimer();
lonLat = new LonLat
{
Lon = 200,
Lat = 100
};
ViewBag.Message = lonLat;
return View();
}
private void SetTimer()
{
aTimer = new System.Timers.Timer(5000);
aTimer.Elapsed += OnTimedEvent;
aTimer.AutoReset = true;
aTimer.Enabled = true;
}
private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
lonLat.Lon = new Random().Next(-180, 180);
lonLat.Lat = new Random().Next(-90, 90);
ViewBag.Message = lonLat;
}
А в виду:
@{
var data = ViewBag.Message;
}
<h3>RecordName: @data.Lon</h3>
<h3>RecordDetail: @data.Lat</h3>
Но я уже вижу значения 200 и 100, как обновить ViewBag?
Я пытался добавить Response.AddHeader("Refresh", "5");