【问题标题】:how to redirect to another page in MVC after Response.End()如何在 Response.End() 之后重定向到 MVC 中的另一个页面
【发布时间】:2015-06-18 07:10:16
【问题描述】:

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

【问题讨论】:

  • 自从我编写 Web 应用程序以来已经很久了,但是据我所知,在 Response.End() 之后你不能使用任何 Response 对象方法。为什么不在 using 之后执行 Response.Redirect() 并从那里删除 Response.End()
  • 我认为这可以帮助你...stackoverflow.com/questions/13065697/…
  • @ZoharPeled 感谢您的回复..在Response.Redirect() 它需要指定一个 url..这里我的要求是我需要显示一个页面,其中包含导出到 excel 的相同详细信息..例如返回View(data) 其中data 是 iagedList 项

标签: c# asp.net-mvc redirect


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 2017-06-08
    • 2017-05-11
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多