Jquery mvc3 ajax导出文件

Jquery mvc3 ajax导出文件,jquery,asp.net,ajax,asp.net-mvc-3,export,Jquery,Asp.net,Ajax,Asp.net Mvc 3,Export,我编写了一个操作,允许用户将文本导出为.txt文件。视图上的按钮通过ajax调用此操作。我使用ajax是因为我希望用户在下载文本文件时保持在同一页面上。单击按钮后,将执行该操作。但它并没有像预期的那样发挥作用。ajax调用会导致页面刷新,并且不会显示文件下载弹出窗口 有人能帮我修一下吗 以下是代码片段: 看法 解决方案 谢谢所有的回复 我不需要使用ajax。这是按预期工作的代码: 看法 为什么从成功回调返回false?不要更改响应标题。File方法为您执行此操作,并且没有错误。为什么从成功回调返

我编写了一个操作,允许用户将文本导出为.txt文件。视图上的按钮通过ajax调用此操作。我使用ajax是因为我希望用户在下载文本文件时保持在同一页面上。单击按钮后,将执行该操作。但它并没有像预期的那样发挥作用。ajax调用会导致页面刷新,并且不会显示文件下载弹出窗口

有人能帮我修一下吗

以下是代码片段: 看法

解决方案

谢谢所有的回复

我不需要使用ajax。这是按预期工作的代码:

看法


为什么从成功回调返回false?不要更改响应标题。File方法为您执行此操作,并且没有错误。为什么从成功回调返回false?不要更改响应头。File方法可以为您完成这项工作,而且不会出错。
<button id="exportButton">
<span>Export to Text</span>
@Html.HiddenFor(m => m.VersionId)
<input type="hidden" id="exportUrl" value='@Url.Content("~/LegalAgreement/_Export") ' />

<script type="text/javascript">

$(document).ready(function () {

    $("#exportButton").click(function () {

        $.ajax({
            url: $('#exportUrl').val(),
            type: 'post',
            cache: false,
            data:
        {
            id: $('#VersionId').val()
        },
            success: function () { return false; }
        }); //end ajax   

    });


});
 public ActionResult _Export(int id)
    {
       Response.AddHeader("content-disposition", "attachment; filename=fileName.txt");
        Response.ContentType = "application/octet-stream";

        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
        byte[] extractedData = encoding.GetBytes("the text to be exported");

        return File(extractedData, "application/octet-stream");           
    }
 <a id="exportButton" href='@Url.Action("_Export",new {id = Model.VersionId})'>
        <span>Export to Text</span>
 </a> 
 public ActionResult _Export(int id)
    {

        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();          
        byte[] extractedData = encoding.GetBytes("some text");

        return File(extractedData, "application/octet-stream", "fileName.txt");

    }