繁体   English   中英

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

[英]how to redirect to another page in MVC after Response.End()

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM