ASP.NET MVC Как вывести FileContent из действия контроллера и продолжить - PullRequest
0 голосов
/ 16 февраля 2011

Я довольно новичок в MVC и хочу знать, каков правильный подход - при отправке формы выполняется Edit ActionResult, после сохранения данных я хочу создать файл и отправить его в браузер для загрузки, но также перейдите к другому действию.

Файл отправляется в браузер, но дальнейшая обработка в контроллере не происходит, потому что я использую return RedirectToActions. Заранее спасибо за любые указатели.

public ActionResult Edit(int id, InvoiceFormData formData)  
{ 
  ...    
  return base.RedirectToAction("ReturnPdf", new { id = 99 });

  // More processing...ideally...then

  return base.RedirectToAction("Action", "Controller");
}

public FileResult ReturnPdf(int? id)
{
  ...
  return output; // writes file output and prompts user to download
}

1 Ответ

0 голосов
/ 16 февраля 2011

Вы не можете использовать два оператора возврата в одном и том же результате действия и ожидать, что они оба запустятся.Когда вы «возвращаете», это означает, что вы возвращаете вывод, а затем выходите из результата действия.Таким образом, вы могли бы связать свои действия в цепочку, поэтому вместо дальнейшей обработки внутри результата действия Edit вы можете переместить эту логику в AR ReturnPdf (так как это то, что я видел в вашем коде), а затем, наконец, вернуть окончательный результат.в любом результате действия вы приземлились.Я надеюсь, что это было достаточно ясно ...

...