Странное поведение с IE8 и Ajax.ActionLink - PullRequest
2 голосов
/ 01 августа 2011

Просто попасть в ajax с помощью MVC3. У меня странное поведение с IE8. Код на мой взгляд:

@Ajax.ActionLink("Get Latest Server Time",
             "ServerTime",
             new AjaxOptions() {UpdateTargetId = "serverTime",
                                InsertionMode = InsertionMode.InsertAfter,
                                HttpMethod = "GET",
                                LoadingElementId = "progress",
             });


<div id="serverTime">
</div>

<div id="progress">
    In Progress.....    
</div>

В IE8 он отлично работает при первом нажатии на ссылку (actionlink). Ссылка на действие просто получает время разрыва. При каждом последующем вызове он просто использует значение, которое вы изначально получили от сервера (время), и не возвращается на сервер. Так что, если в первый раз вы щелкнули ссылку, это было 13:24:36, то даже если вы нажмете ссылку через 15 минут, она все равно будет отображаться в то же время.

Я подумал, что, возможно, это мое новичок в понимании ajax, но потом я попробовал chrome & firefox, и все работает, как и ожидалось. Может быть, IE9 работает правильно, но я не уверен, потому что я использую XP. Кто-нибудь знает, что происходит?

1 Ответ

2 голосов
/ 09 августа 2011

IE вообще кеши получают запросы. Это может быть реальная боль при отладке Ajax-запросов. Самый простой способ решить вашу проблему - изменить HttpMethod = "GET" на HttpMethod = "POST", вам просто нужно убедиться, что ваше действие принимает сообщения.

[HttpPost]
public ActionResult ActionSetup()
{//stuff here}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...