在我的索引操作中,我正在检查是否存在请求参数,并重定向到另一个操作(如果存在)。重定向正在运行,但它没有传递我的路由值对象
// GET: Forecast
public ActionResult Index(FilterVm form)
{
if (Request.Params["ExcelExport"] != null) // Return Excel File
return RedirectToAction("ExcelExport", new { filter = form });
else
{
// stuff omitted...
return View(vm);
}
}
我正在重定向的行动:
// GET: Forecast/ExcelExport
public ActionResult ExcelExport(FilterVm filter)
{
var dto = Mapper.Map<ForecastFilterDto>(filter);
var excelFile = forecastService.GetForecastExcelExport(dto);
string fileName = "EXCEL.xlsx";
return File(excelFile.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
我注意到当它点击第二个“ExcelExport”动作时,线程ID也会改变。我是一个相对noobie所以我不太确定会发生什么事可能导致这种情况。
我尝试将这两个操作都滚动到Index操作中,IF语句检查参数并在参数存在时返回文件,如果不存在则返回视图。调试该设置时,我注意到它返回File,然后继续返回视图!我完全不知道这里发生了什么。