我有一个列表视图,我想将所有数据导出为 txt 文件。作为要求,我需要通过单击导出按钮创建 3 个 txt 文件。我有一个控制器操作来生成这些文件并将它们作为 zip 文件下载。当我单击“导出”按钮时,它将触发“ExportFiles”操作。同时我想重定向到“列表”操作,因为我想刷新视图。
但问题是我不能同时完成这两项任务。那么我该怎么做呢?
这是我的代码;
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());
}
}
}