如何在Response.End()之后重定向到MVC中的另一个页面

时间:2015-06-18 07:10:16

标签: c# asp.net-mvc redirect

在我的项目中,用户可以搜索学生的详细信息并将其导出到excel。我正在使用OpenOfficeXMl来实现这一目标。 单击搜索按钮后,excel将与数据一起下载。

excel下载完成后是否可以重定向到另一个页面。

我正在将数据分配给数据表,然后它将提取到excel,如下所示。

using (ExcelPackage pck = new ExcelPackage())
{
    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("PData");
    ws.Cells["A1"].LoadFromDataTable(p_data, true);
    Response.Clear();
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.AddHeader("content-disposition", "attachment;  filename=School-" + DateTime.Now + "-file" + ".xlsx");
    Response.BinaryWrite(pck.GetAsByteArray());
    Response.End();
}

return View()之后可以RedirectResponse.End()吗?

修改

下载excel后,我需要导航到另一个页面以显示在excel中导出的相同数据。像return View(Data) 其中DataIpagedList对象

1 个答案:

答案 0 :(得分:0)

您无法将excel文件发送到响应并同时重定向。

在这种情况下,一种方法可能是简单地返回一个View,并传递一个包含IpagedList的视图模型以及指向pdf的链接。不需要重定向;除非您以前的行动是POST。

在结果页面中,您可以显示IpagedList信息以及他们可以单击下载excel文件的链接,甚至可以从jquery自动下载,例如打开一个URL指向您的pdf的新窗口。 / p>