ASP.Net MVC Переключение свойства IsAjaxRequest на основе загрузки файла? - PullRequest
0 голосов
/ 16 июня 2009

У меня есть все настройки для загрузки файла, и это работает нормально. Однако способ отправки моей формы - через AJAX. Кнопка, которая передает, все еще является type = "submit" в случае, если JS выключен.

Когда я сохраняю свою форму, контроллер определяет, является ли IsAjaxRequest истинным, и если да, возвращает некоторый JSON, в противном случае он выполняет RedirectToAction.

Когда я не указываю путь к файлу в моем вводе type = "file", он считает IsAjaxRequest истинным. Если задан путь к файлу, он думает, что IsAjaxRequest имеет значение false. Как это определяет это?

Моя другая проблема заключается в том, что, когда он думает, что IsAjaxRequest имеет значение false и выполняет RedirectToAction ("Index"), я фактически не отправляюсь в представление Index.

Спасибо

1 Ответ

0 голосов
/ 16 июня 2009

Может, проблема не в IsAjaxRequest()? - он просто ищет ["X-Requested-With"] == "XMLHttpRequest" во входящем запросе. Посмотрите на Mvc \ AjaxRequestExtensions.cs :

public static class AjaxRequestExtensions {
    public static bool IsAjaxRequest(this HttpRequestBase request) {
        if (request == null) {
            throw new ArgumentNullException("request");
        }

        return (request["X-Requested-With"] == "XMLHttpRequest")
            || ((request.Headers != null)
                && (request.Headers["X-Requested-With"] == "XMLHttpRequest"));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...