我有一個列表視圖,我想將所有數據導出爲txt文件。由於我需要通過單擊「導出」按鈕來創建3個txt文件。我有一個控制器操作來生成這些文件並將它們作爲zip文件下載。當我點擊導出按鈕時,它會觸發「導出文件」操作。同時我想重定向到「列表」操作,因爲我想刷新視圖。生成的文件下載後重定向到view/refresh視圖asp.net mvc
但問題是我不能同時做兩個任務。那我該怎麼做呢?
這是我的代碼;
public virtual ActionResult List()
{
// Code : showing my list
return view();
}
public virtual ActionResult ExportFiles()
{
// Code : Generating files
return new ZipResult(filePath, fileName + ".zip");
// HERE I WANT TO REFRESH MY VIEW
}
public class ZipResult : ActionResult
{
private readonly string _filePath;
public string Filename { get; set; }
public ZipResult(string filePath, string fileName)
{
_filePath = filePath;
Filename = fileName;
}
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
var response = context.HttpContext.Response;
response.ContentType = "application/gzip";
using (var zip = new ZipFile())
{
zip.AddFile(_filePath);
zip.Save(response.OutputStream);
var cd = new ContentDisposition
{
FileName = Filename,
Inline = false
};
response.Headers.Add("Content-Disposition", cd.ToString());
}
}
}