我正在使用ASPNET MVC 3,当在View中点击链接时,我从控制器返回一个FileResult(它取自Stream,而不是物理文件)。 我想要实现的是在文件下载完成后做一些事情。有没有可能做到这一点?因为在返回文件后我现在无法写任何东西......
提前致谢!吉列尔莫。
答案 0 :(得分:6)
创建自己的文件结果或派生现有结果:
public class MyFileStreamResult : FileStreamResult
{
// [.. constructors here ..]
public override void ExecuteResult(ControllerContext context)
{
base.ExecuteResult(context);
// do something here
}
}
然后从你的行动中得出结论:
return new MyFileStreamResult(myStream, "application/octet-stream");
答案 1 :(得分:0)
您无法知道文件何时下载或是否已成功下载。
一种解决方案是显示“您正在下载”或“您的下载将在几秒钟内开始”页面,并使用隐藏的iframe或JavaScript开始文件下载。页面可以表现为页面成功。