ASP.NET MVC3 Обновление div с помощью Ajax - PullRequest
0 голосов
/ 21 февраля 2012

Я знаю, что на этот вопрос, вероятно, отвечали более 200 раз, и в течение последних 2 часов я просматривал stackoverflow, пробуя каждое возможное решение, так что, я думаю, я уйду отсюда ..

У меня есть частичное представление, которое выглядит следующим образом.

@using DatabaseEntities;
@using NJNightLifePortal.Models;
@model NJNightLifePortal.Models.StatisticsViewModel
@foreach (var item in Model.RecentlyLiked)
{
<div class="resultbox1">
    @Html.ActionLink(item.Username, "profile", "account", new { id = item.Username }, null)
    has recently liked @Html.ActionLink(item.VenueName, "venueprofile", "venue", new { id = item.VenueId, albumId = Utils.GetVenueDefaultAlbumIdByVenueId(item.VenueId) })
</div>    
}

Затем я вызываю jjery ajax-функцию для этого через setTimeout, как показано ниже.

 $(function () {
        setTimeout(
            function () {
                setInterval(RefreshStats, 2000);
                RefreshStats();
            }, 3000);

        function RefreshStats() {
            $.get('@Url.Action("LatestActivities", "Statistics")', function (data, status) {
                console.log(data);
                $('.resultbox1').html(data);
            });

        }

Я также пробовал $.load, $.ajax .. Я также пробовал document.getElementById(element).innerHTML = data;, и у меня все еще есть те же результаты. Каждое из вышеупомянутых соглашений прекрасно работает в firefox и chrome , но независимо от того, что я делаю с IE, оно либо заканчивается обновлением с пустыми результатами, либо воссоздает совершенно новый div, который не даже возвращается при частичном просмотре.

Пожалуйста, спросите или попросите все, что я пытаюсь выяснить, и хотел бы иметь надежное исправление, а не исправление взлома, если это не необходимо. Все, что я пытаюсь сделать, - это получить некоторые результаты в БД и отобразить их, как они отформатированы в частичном представлении, в div с именем resultbox1.

Заранее большое спасибо.

1 Ответ

1 голос
/ 21 февраля 2012

Может быть, IE кеширует ответы (что нормально для запросов GET, просто IE немного агрессивнее в этом отношении).Что нужно попробовать:

  • украсьте действие LatestActivities контроллера пользовательским атрибутом [NoCache]
  • , используйте запрос POST: замените $.get на$.post
  • замените $.get на $.ajax и установите параметр cache: false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...