У меня есть это действие:
public ActionResult Report(AdminReportRequest reportRequest, FormCollection formVariables)
{
AdminEngine re = new AdminEngine();
AdminReport report = re.GetCompleteAdminReport(reportRequest);
return View(report);
}
Мне было интересно, как можно перейти к перенаправлению на другое действие в том же контроллере, передав переменные AdminReportRequest и FormCollection?
Я имел в виду нечто подобное:
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"
};
}
Это явно не так и выдает некоторые ошибки, такие как:
System.Web.Mvc.Controller.RedirectToAction (строка,
строка,
System.Web.Routing.RouteValueDictionary)»
имеет недопустимые аргументы
и
Аргумент 3: невозможно преобразовать из
'System.Web.Mvc.FormCollection' для
'System.Web.Routing.RouteValueDictionary'
Если бы кто-то мог указать мне правильное направление, я был бы очень благодарен, я думаю, что мне, возможно, придется редактировать файл Global.asax, однако я не слишком знаком с этим.
спасибо.