return RedirectToAction不传递路由值

时间:2017-11-16 22:29:01

标签: asp.net-mvc-5

在我的索引操作中,我正在检查是否存在请求参数,并重定向到另一个操作(如果存在)。重定向正在运行,但它没有传递我的路由值对象

// 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,然后继续返回视图!我完全不知道这里发生了什么。

0 个答案:

没有答案