【发布时间】:2019-07-22 11:06:01
【问题描述】:
我在 C# 中有一个方法,它基本上以 CSV 文件的形式生成一个字符串,如下所示:
[HttpPost]
[ActionName("ExportFolder")]
[ValidateAntiForgeryToken]
public string ExportFolder(int? folderId)
{
if (folderId != null)
{
using (var ctx = new myContextEntities())
{
var uid = Convert.ToInt32(User.Identity.Name);
var itemsToExport = ctx.Items.Where(y => y.MyListId == folderId && y.UserId == uid).ToList();
var sw = new StringWriter();
sw.WriteLine("\"Title1\",\"Title2 \",\"Title3\",\"Title4\",\"Title5\"");
foreach (var item in itemsToExport)
{
sw.WriteLine(string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\"",
item.Title1,
item.Title2,
item.Title3,
item.Title4,
item.Title5
));
}
return sw.ToString();
}
}
return "error";
}
基本上,这现在应该是一个准备好的“CSV”文件,一旦 POST 完成就可以下载了。
jQuery 部分如下所示:
$(document).on("click", ".exportFolder", function () {
$.post("/ItemManagement/ExportFolder", { __RequestVerificationToken: $('input[name="__RequestVerificationToken"]', '#__AjaxAntiForgeryForm').val(), folderId: $(this).attr("ID") }).done(function (data) {
// Now I should here download the file...
});
});
但我现在不确定如何触发下载部分?有人可以帮帮我吗?
【问题讨论】:
-
有人吗? =)
标签: c# asp.net asp.net-mvc asp.net-mvc-4 c#-4.0