Pasar información a otra acción usando RedirectToAction - MVC
Tengo esta acción:
public ActionResult Report(AdminReportRequest reportRequest, FormCollection formVariables)
{
AdminEngine re = new AdminEngine();
AdminReport report = re.GetCompleteAdminReport(reportRequest);
return View(report);
}
Me preguntaba cómo podría redirigir a otra acción dentro del mismo controlador, pasando las variables AdminReportRequest y FormCollection.
Tenía algo como esto en mente:
public ActionResult EarningsSalesReport(AdminReportRequest reportRequest, FormCollection formVariables)
{
if (!reportRequest.Download)
{
AdminEngine re = new AdminEngine();
AdminReport report = re.GetCompleteAdminReport(reportRequest);
return View(report);
}
return RedirectToAction("ExcelSalesReport", reportRequest, formVariables);
}
public FileResult ExcelSalesReport(AdminReportRequest reportRequest, FormCollection formVariables)
{
AdminEngine re = new AdminEngine();
Stream SalesReport = re.GetExcelAdminReport(reportRequest);
return new FileStreamResult(SalesReport, "application/ms-excel")
{
FileDownloadName = "SalesReport" + DateTime.Now.ToString("MMMM d, yyy") + ".xls"
};
}
Esto obviamente está mal y arroja algunos errores, como:
'System.Web.Mvc.Controller.RedirectToAction (string, string, System.Web.Routing.RouteValueDictionary)' tiene algunos argumentos no válidos
Argumento 3: no se puede convertir de 'System.Web.Mvc.FormCollection' a 'System.Web.Routing.RouteValueDictionary'
Si alguien pudiera señalarme en la dirección correcta, lo agradecería enormemente, creo que podría tener que editar el archivo Global.asax, sin embargo, no estoy demasiado familiarizado con esto.
Gracias