Jquery mvc3 ajax导出文件
我编写了一个操作,允许用户将文本导出为.txt文件。视图上的按钮通过ajax调用此操作。我使用ajax是因为我希望用户在下载文本文件时保持在同一页面上。单击按钮后,将执行该操作。但它并没有像预期的那样发挥作用。ajax调用会导致页面刷新,并且不会显示文件下载弹出窗口 有人能帮我修一下吗 以下是代码片段: 看法 解决方案 谢谢所有的回复 我不需要使用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方法为您执行此操作,并且没有错误。为什么从成功回调返
为什么从成功回调返回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");
}