2015-06-02 5 views
0

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

[HttpPost] 
public override FileContentResult Foo() { 
    var someDataAsBytes = ... 
    return File(someDataAsBytes, "text/csv", "somefilename.csv"); 
} 

мнение имеет форму, которая использует подпись на это мероприятие.

я начать загрузку в сценарии, так что страница не меняется:

$(myForm).on("submit", function() { 
    window.location.href = $(this).attr("action"); 
}); 

Файл загружается правильно.

Но мои журналы Elmah показывают, что произошла ошибка «без соответствующего действия».

Если я использую [HttpHead], [HttpPost] или [HttpGet], то получаю тот же результат. Если я удалю HTTP-метод, то я не получу ошибку.

В идеале я бы хотел использовать POST, но это не важно. Как ограничить действие одним из них, но не получить ошибки?

ответ

0

Ответ заключается в том, что каждый раз, когда я нажимаю, чтобы загрузить файл, отправляются два запроса, POST и HEAD.

Если действие не принимается и, тогда исключаются исключения. Если HTTP-метод не указан, то оба будут проходить без ошибок.

Это ответ на вопрос.

НО, я не знаю, почему для этого есть два запроса. Я спрошу это в a separate question.