Как отправить ответ и файл в ASP.NET MVC 3? - PullRequest
1 голос
/ 13 мая 2011

Я нашел в Интернете несколько вещей, которые говорят, что это невозможно, но я видел, как разные сайты делают вещи, которые, безусловно, выглядят так.

Что я хочу сделать:

1) Пользователь нажимает кнопку отправки.

2) Веб-сайт подтверждает, что с запросом все в порядке, и отправляет обратно страницу с надписью «Я работаю над этим».

3) По завершении работы веб-сайт отправляет zip-файл с результатами, а затем заменяет страницу «Я работаю над этим» оригиналом.

Я мог бы подделать шаг # 2, вернув страницу с кучей скрытых полей и javascript, чтобы немедленно нажать скрытую кнопку отправки, но это все равно не отображает оригинал, когда он закончил хруст.

1 Ответ

1 голос
/ 13 мая 2011

Вы можете вернуть результат файла:

public ActionResult DoTheCrunching()
{
    if (something is wrong)
    {
        // redisplay the view
        return View();
    }
    // otherwise compress and return the result in the response stream
    byte[] crunchedBuffer = ...
    var cd = new ContentDisposition
    {
        FileName = "foo.zip",
        Inline = false
    };
    Response.AppendHeader("Content-Disposition", cd.ToString());
    return File(crunchedBuffer, "application/zip");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...