从ajax打开save,saveas对话框

时间:2012-07-02 07:34:24

标签: asp.net-mvc-3 asp.net-ajax

当我使用

window.location ='<%= Url.Action(“DownloadFile”,“Home”)%>?fileId = id,

我完全在不同的屏幕中获取内容

但是如何打开它作为弹出窗口,如打开,保存,另存为对话框?

我正在点击ActionResult DownloadFile() 返回一个File对象。

1 个答案:

答案 0 :(得分:0)

您可以使用File方法的第三个参数来指定文件名。当用户导航到此操作时,这会将Content-Disposition HTTP响应标头设置为attachment弹出“另存为”对话框:

public ActionResult DownloadFile(string fileId)
{
    byte[] file = ...
    // TODO: adjust the MIME type and filename extension to your case accordingly
    return File(file, "text/plain", "foo.txt");
}

然后:

var id = '1234';
window.location.href = '<%= Url.Action("DownloadFile", "Home") %>?fileId=' + id;

工作得很好。