【问题标题】:Return RedirectToAction isn't working after using HttpContext.ApplicationInstance.Response使用 HttpContext.ApplicationInstance.Response 后返回 RedirectToAction 不起作用
【发布时间】:2022-10-18 21:31:08
【问题描述】:

我正在处理一个用作调查的页面,在用户结束填写参数后,有一个按钮使用 HTTPOST 调用名为“Registro”的操作结果,然后,它执行几行代码直到它到达保存excel文件的行:

workbook.SaveAs("Respuestas.xlsx", HttpContext.ApplicationInstance.Response, ExcelDownloadType.Open);

但在该代码行之后,按钮似乎忽略了代码的下一部分,即:

return RedirectToAction("Gracias", "Home");

我使用了断点并且代码正在读取该部分,但它只是没有重定向到操作,为什么?

我试图删除工作簿 saveas 行,并且返回行工作正常;我不明白我必须做什么才能下载所需的文件并重定向到另一个页面。 对于 excel 部分,我使用了一个名为 Syncfusion 的库。

【问题讨论】:

    标签: c# asp.net asp.net-mvc syncfusion


    【解决方案1】:

    您的控制器只能返回一个结果。在这种情况下,workbook.SaveAs 将 HTTP 响应设置为文件并将其返回给您的客户端。此后您无法重定向,因为已发送响应。如果您想实现重定向,则必须以另一种方式解决此问题。 Javascript 可能是您最好的选择。

    【讨论】:

      【解决方案2】:

      来自 Syncfusion 的问候。

      Web 应用程序中 Syncfusion XlsIO 的行为是,当保存工作簿时,写入 Excel 文件后响应结束。因此不会发生重定向到下一个操作。我们准备了一个简单的示例,其中包含重定向到下一个操作的解决方法。

      该示例可以从以下链接下载。

      示例链接:https://www.syncfusion.com/downloads/support/directtrac/general/ze/T413265_MVC-1487881320.zip

      请尝试让我们知道这是否有帮助。

      问候, 克尔提。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多