我目前使用project awesome来弹出一个表格,要求输入一个帐号。MVC CSV文件下载+项目真棒
我拿号,并生成一个CSV文件,并将其发送到浏览器:
string billcsv = "account_ref,line1,line2,line3"
var VIRFile = File(new System.Text.UTF8Encoding().GetBytes(billcsv), "text/csv", "billfor" + accnumber+ ".csv")
return Json(VIRFile);
我想最终用户提示保存csv文件,但无法弄清楚是谁。
我应该先在磁盘上创建CSV文件,然后将文件传递给成功函数并使用window.open(url),或者可以使用javascript从json结果重新创建文件?
JSON结果:
{ “FileContents”:[65,99,99,111,117,110,116,95,82,69,70,44,73,78,86,79,73,67,69,95 ,84,89,80,69,44,73,78,86,79,73,67,69,95,82,69,70,44,81,84,89,95,79,82,68,69 ,82,44,83,69,82,86,73,67,69,95,84,69,88,84,44,85,78,73,84,95,80,82,73,67,69 ,44,83,69,82,86,73,67,69,95,65,77,79,85,78,84,13,10,114,114,114,44,73,110,118,111,105,99,101,44,86,73,82,49 ,48,50,44,49,44,83,116,97,114,83,104,105,112,32,32,79,110,101,13,10,44,76,79,65,32,45,32,32,109,116,114,115,13,10,44,71 ,82,84,32,45,71,84,44,48,44,48,44,48,13,10,114,114,114,44,73,110,118,111,105,99,101,44,86,73,82,49,48,50,44 ,50,44,66,111,97,116,32,84,114,97,110,115,102,101,114,115,32,72,105,114,101,32,67,104,97,114,103,101,44,50,53,48,46,48,48,4 4,53,48,48,46,48,48,13,10,114,114,114,44,73,110,118,111,105,99,101,44,86,73,82,49,48,50,44,51,44,66,101,114,116,104,105,110,103,32,32, 82,70,65,32,47,32,77,111,68,44,51,53,48,46,48,48,44,49,48,53,48,46,48,48,13,10] ,“ContentType”:“text/csv”,“FileDownloadName”:“billfor123.csv”}
我使用弹出窗体的原因是因为用户需要输入一个帐号,然后才能生成csv。账号构成了account_ref字段的一部分。在用户输入帐号之前,帐号是未知的。 – uk101man 2011-06-06 10:11:30
@ uk101man,您的问题并非来自您使用弹出窗体的事实。它来自于您使用AJAX提交此表单的事实。你不应该这样做。使用常规的'@ Html.BeginForm()'助手来生成表单,并且不要使用任何AJAX来发布它。 – 2011-06-06 10:12:53
,但ajax表单是我相信的项目真棒使用。当我实现你的想法时,csv文件的内容会返回到弹出窗口。 – uk101man 2011-06-06 10:58:10