在我的mvc应用程序中,我使用jquery使用ajax post。示例如下所示
var postData = { recordID: selectedRecord };
$.ajax({
type: "POST",
data: postData,
url: '<%= Url.Action("LoadAudioPlayer", "Search") %>',
success: function (result) { alert(result); },
error: function (result) { alert('error'); }
});
在制作.wav文件的虚拟路径的操作中。如何向用户下载提示 我的行动如下所示
public string LoadAudioPlayer(string recordID,SearchModels searchModel)
{
//doing some operations
path=getPath(); \\getting virtual path of the file
return path;
}
我可以看到路径导致我发出警报。我想提示用户是否要下载文件。我如何用jquery处理它?</ p>
答案 0 :(得分:2)
您必须在成功功能中添加一个新窗口(弹出窗口),并将路径作为位置。这将从客户端浏览器查询存储在服务器上的文件,并询问客户端是否需要下载它。
var postData = { recordID: selectedRecord };
$.ajax({
type: "POST",
data: postData,
url: '<%= Url.Action("LoadAudioPlayer", "Search") %>',
success: function (result) { window.open(result,'',''); },
error: function (result) { alert('error'); }
});
答案 1 :(得分:2)
我认为this article解释了类似于你想要做的事情。
答案 2 :(得分:2)
而不是做这个ajax查询,这似乎是不必要的,你可以写:
window.location = '<%= Url.Action("LoadAudioPlayer", "Search") %>/' + recordID;
并且可以将Action方法更改为此方法来处理不存在的文件
public string LoadAudioPlayer(string recordID, SearchModels searchModel)
{
//doing some operations
var path = getPath(); //getting virtual path of the file
if (System.IO.File.Exists(path))
{
var fileName=getFileName();
ControllerContext.HttpContext.Response.AddHeader("content-disposition",
"attachment; filename=" + fileName)
return File(path, contentType);
}
return new EmptyResult();
}