2
我在使用 $ .ajax()下載csv文件時遇到問題。的代碼。MVC - 如何在mvc3中使用ajax下載csv文件
我有一個控制器正在返回文件如下。
public ActionResult ExportEx()
{
StringBuilder sb = new StringBuilder();
sb.Append("<table>");
sb.Append("<tr>");
sb.Append("<td>1</td>");
sb.Append("<td>2</td>");
sb.Append("<td>3</td>");
sb.Append("<td>4</td>");
sb.Append("</tr>");
sb.Append("<table>");
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=student_" + DateTime.Now.Year.ToString() + ".xls");
this.Response.ContentType = "application/vnd.ms-excel";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
return File(buffer, "application/vnd.ms-excel");
}
我index.cshtml文件,如下
<input type="submit" value="Export To Excel" title="Export To excel" />
<script type="text/javascript">
$(".tt").click(function() {
$.ajax({
url: '/Home/ExportEx',
type: 'POST',
data: {},
success: function (data) { },
complete: function (data) { }
});
});
</script>
如果我叫使用<a class="tt" href="@Url.Action("ExportEx", new { })">export</a>
我可以下載csv文件。但通過$.ajax
打電話我無法下載。
請幫助我。
在此先感謝。
爲什麼通過ajax做到這一點?難道你只是使用一個actionLink來下載文件? – Nate 2013-04-05 04:31:25
我需要將一些動態值傳遞給操作方法。所以,我正在使用ajax調用 – Vasanth 2013-04-05 09:40:22
您可以使用隱藏的表單元素將動態值傳遞給控制器。我不認爲阿賈克斯在這裏是正確的做法。 – Nate 2013-04-05 23:53:18