【发布时间】:2014-03-28 16:30:35
【问题描述】:
我有一个提供简单视图的 MVC 控制器
public class MyController : Controller {
[HttpGet]
public ActionResult Index() {
return View();
}
[HttpGet]
public ActionResult ZipIndex() {
// Get the file returned bu Index() and zip it
return File(/* zip stream */);
}
}
从上面可以看出,我需要实现的是一个方法,它获取由 Index() 生成的 html,将其压缩并作为可以下载的文件返回。
我知道如何压缩,但我不知道如何获取 html。
【问题讨论】:
-
查看stackoverflow.com/questions/4936809/… - 可能就是答案。
-
如果用户需要页面的 HTML 内容,他们不能直接右键单击并另存为吗?
-
@RichardEverett 如果许多用户真的知道能够保存页面的源代码(并且有方便的方法 - 即在手机上),我会感到惊讶。请注意,结果可能不是 HTML(即 CSV) - 因此对于我来说,查看和下载同一视图的 zip 的简单方法看起来非常合理。
-
@AlexeiLevenkov。非常感谢。这样可行。我想知道是否有直接调用 Index() 方法的方法?您链接到的该方法需要模型作为参数。我在 Index() 中有很多代码来设置视图,并且不想在 ZipIndex() 中复制它。
-
@IlirDeda 我扩展了下面的回复,展示了一个使用视图渲染和 .NET 4.5 zip 技术的解决方案。
标签: c# asp.net-mvc asp.net-mvc-4