создать вложенный пост jQuery в другом обратном вызове post?

#ajax #jquery

#ajax #jquery

Вопрос:

поскольку я новичок в jquery, не могли бы вы рассказать мне, как перенаправить страницу на другой метод действия? Я разрабатываю веб-приложение MVC. Я использую метод jquery post для выполнения некоторой проверки, и когда он вернет true, это будет перенаправление страницы на другую. Моя проблема в том .. когда, когда я перенаправляю страницу с помощью window.расположение, это хорошо работает в IE (IE 9). но не сработало в Firefox и Chrome. Итак, я пытаюсь использовать метод jquery post для перенаправления страницы из метода action в моем контроллере. Я вызываю метод перенаправления post при обратном вызове jquery post. это мой код :

  $.post(posturl, formData, function (result) {
        if (result == 'True') {
            $.post("/Controller/RedirectMethod", {_Action: 'Index', _Controller: 'Home'}, null);
        }
        else
            alert('failed');
    }
    );
  

и это мой метод перенаправления :

     [HttpPost]
    public ActionResult RedirectMethod(string _Action, string _Controller)
    {
        return RedirectToAction(_Action, _Controller);
    }
  

итак, как я должен создать вложенную запись в другом обратном вызове post?
или есть другой способ перенаправить страницу?

Спасибо,

Комментарии:

1. window.location должно сработать; что вы делали?

2. хм … спасибо Альперт, я пытаюсь использовать location.href , и это работает в обоих, mozilla и chrome. но я не знаю, почему window. местоположение у меня не сработало.

Ответ №1:

Вы не сможете выполнить RedirectToAction внутри Ajax-запроса.

Если вам нужно, чтобы веб-страница переместилась в другое местоположение внутри ответа Ajax, используйте window .расположение, как предложил Бен.

Следует иметь в виду одну вещь: вам нужно удалить фильтр действий ‘HttpPost’.

Комментарии:

1. «Следует иметь в виду одну вещь: вам нужно удалить фильтр действий «HttpPost»». <- можете ли вы рассказать мне подробнее об этом? Спасибо