/ / Zmiana ViewBag przy użyciu ajax w ASP.NET MVC3 - ajax, asp.net-mvc, server wymiany, viewbag

ViewBag zmienić za pomocą ajax w ASP.NET MVC3 - ajax, asp.net-mvc, serwer wymiany, viewbag

ViewBag, ViewData, TempData są wywoływane tylko raz przy pierwszym wywołaniu widoku?

I nigdy nie zmieniaj, jeśli nie odświeżę strony?

Ponieważ chcę zmienić za pomocą Ajax (co 10 sekund nazywam Ajax)

Plz Zobacz poniższy kod,

==================== w kontrolerze ... =======================

 public ActionResult OriginView()
{

ViewBag.IntData = 1;

return View();

}


public JsonResult ChangeViewBag(int CurrentInterval)
{

ViewBag.IntData = CurrentInterval;

return Json(new{IntData=CurrentInterval},JsonRequestBehavior.AllowGet);

}

================= w OriginView.cshtml ... =======================

 var CurrentInterval = 2

$.getJSON("@Url.Action("ChangeViewBag","Controller")", {CurrentInterval:CurrentInterval},function(response){

@*CurrentInterval++ every ten sec, I want to use CHANGED ViewBag here!*@

alert(@ViewBag.IntData) @*but **Result is still 1**, unchanged!*@

alert(response.IntData) @*ofcourse I can use it in this way. *@

@* but I should use below ASP.NET CODE

@{
string TimeData = DateTime.Now.AddSeconds(**ViewBag.IntData**).ToString();
}

***The position is impossible to javascript variable.*** right?*@
});

Geniusz .Net proszę !!! Jeśli to niemożliwe, jakiś pomysł?

Odpowiedzi:

2 dla odpowiedzi № 1

ViewData / ViewBag(jest to opakowanie dookoła ViewData) służą do przekazywania danych między kontrolerem do widoku i są one tworzone ponownie przy każdym żądaniu, niezależnie od tego, czy jest to AJAX, czy normalne. Nie pomagają ci utrzymać stanu :(