Супер простой пример Ajax.ActionLink не работает в IE ... но работает в Firefox, Chrome, Safari. - PullRequest
2 голосов
/ 14 февраля 2010

У меня есть следующий контроллер:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    public class TestController : Controller
    {
        public ActionResult Test()
        {
            return View();
        }

        public string AjaxTest()
        {
            return "Some random text";
        }

    }
}

У меня есть следующий вид:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<html>
<head runat="server">
    <title>Test</title>
      <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>

    <script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
</head>
<body>
  <%= Ajax.ActionLink("Ajax Test", "AjaxTest", new AjaxOptions{UpdateTargetId="testtarget" }) %>
  <div id="testtarget">Test Div</div>
</body>
</html>

Когда я нажимаю на ссылку действия в IE, код контроллера запускается, но div НЕ обновляется. Сделайте это в любом другом браузере, и он работает просто отлично. Это (еще одна) известная проблема / ошибка с IE ?? Или я что-то не так делаю?

Ответы [ 3 ]

1 голос
/ 13 июня 2011

если вы используете MVC3, проверьте это, у меня возникла та же проблема, и теперь я работаю после того, как следовал приведенному ниже предложению, но обнаружил, что Ajax ActionLink кэширует запросы, но это другая проблема

Ajax.ActionLink не работает, Response.IsAjaxRequest () всегда ложно

1 голос
/ 06 марта 2012

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

IE кэширует ваши "любимые" страницы (очевидно, из соображений производительности), но не удаляет их по умолчанию, когда вы очищаете историю браузера.

Вам нужно перейти в настройки Интернета,нажмите «Удалить» (в разделе «История») и ОТМЕНИТЕ «Сохранить данные любимого веб-сайта».

У меня была такая же проблема с обычным веб-сайтом ASP.Net, где при нажатии «Назад» или обновлении страницы IE получал более старую версию.версия моего сайта ..

В любом случае, надеюсь, это поможет!

0 голосов
/ 14 февраля 2010

Вы должны добавить тип документа:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Без этого у вас могут возникнуть некоторые проблемы, но у меня все равно с этим и без. Может быть, есть какая-то проблема с кешированием? Ctrl + F5 и попробуйте снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...