簡體   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