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

本文关键字:MVC 另一个 重定向 之后 Response End | 更新日期: 2023-09-27 17:56:48

在我的项目中,用户可以搜索学校学生的详细信息并将其导出到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();
}

Response.End()后是否可以进行return View()Redirect

编辑

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

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

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

在这种情况下,一种方法可能是简单地返回一个视图,并传递一个包含IpagedList以及指向pdf的链接的视图模型。无需重定向;除非您之前的操作是开机自检。

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