2

$.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電話ではダウンロードできません。

これで私を助けてください。

前もって感謝します。

4

1 に答える 1

1
        $('button').click(function () {
            window.location.href = '/Home/ExportEx';
        });
于 2013-04-11T23:41:07.997 に答える