【发布时间】:2014-10-14 04:27:14
【问题描述】:
在我看来,我有一些复选框,它们的值包括一个 Uri。 在控制器中,我获取选中复选框的值,下载它们的内容(文本)并压缩它们。
看起来 zip 文件已创建,但当我尝试下载时,它无法正常工作。 我没有收到任何错误。更糟糕的是,我得到了 Status 200。
视图中的 AJAX。
$(document).ready(function () {
$('#GetTotal').on('click', function () {
var prices = [];
$('input[name="check[]"]:checked').each(function () {
prices.push($(this).attr("value"));
});
$.ajax({
url: "/AzureSearchService/DownloadAll",
type: "GET",
data: { coursePrices: prices },
dataType: "json",
cache: false,
traditional: true,
success: function () {
alert("ajax request to server succeed");
}
});
});
});
复选框
<input type="checkbox" name="check[]" value="@url" class="checkbox1" style="margin-left: 5px; margin-right: 5px;">
控制器
public ActionResult DownloadAll(IEnumerable<Uri> coursePrices)
{
var outputStream = new MemoryStream();
using (var zip = new ZipFile())
{
foreach (Uri uri in coursePrices)
{
System.Net.WebClient wc = new System.Net.WebClient();
Stream s = wc.OpenRead(uri);
zip.AddEntry(uri.AbsolutePath + ".txt", s);
}
zip.Save(outputStream);
}
outputStream.Position = 0;
return File(outputStream, "application/zip", "all.zip");
}
请在下方查看浏览器的状态 What Browser Returns Status 200
【问题讨论】:
标签: c# asp.net-mvc razor asp.net-ajax dotnetzip