如何在 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)
。其中Data
是IpagedList
对象
您不能将 excel 文件发送到响应并同时重定向。
在这种情况下,一种方法可能是简单地返回一个视图,并传递一个包含IpagedList以及指向pdf的链接的视图模型。无需重定向;除非您之前的操作是开机自检。
在生成的页面中,您可以显示IpagedList信息以及他们可以单击下载excel文件的链接,甚至可以从jquery自动下载,例如通过打开一个新窗口,URL指向您的pdf。