Pra*_*epk 5 ajax asp.net-mvc actionlink actionresult
我通过以下代码发送JSON对象.控制器返回CSV格式的值,应提供promt打开或保存为CSV文件.我无法理解应该在什么代码中成功编写代码:function(result)
出口链接
Html.ActionLink("Export", "", "", null, new { @onclick = "return exportData();"})
function exportData() {
var searchViewModel = getExLogSearchModelData();
var path = getAbsolutePath("ExclusionLog", "ExportData");
$.ajax({
url: path,
cache: false,
contentType: 'application/json; charset=utf-8',
dataType: 'html',
type: 'POST',
data: JSON.stringify(searchViewModel),
success: function (result) {
},
error: function (error) {
$("#voidcontainer").html("Error");
}
});
Run Code Online (Sandbox Code Playgroud)
}
控制器ActionResult
public ActionResult ExportData(ExclusionLogSearchViewModel postSearchViewModel)
{
try
{
IEnumerable<ExclusionLogViewModel> exclusionLogData = null;
exclusionLogcData = this._workerService.GetExclusionLogData(postSearchViewModel);
return CSVFile(exclusionLogMembershipSyncData.GetStream<ExclusionLogViewModel>(), "ExclusionLogTables.Csv");
}
catch (Exception ex)
{
throw ex;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
你能建议怎么做吗?
我遇到了同样的问题,并且没有找到使用下载文件的方法$.ajax,但我发现了一个优秀的 JavaScript 库,它提供了类似的行为:
https://github.com/johnculviner/jquery.file下载
你只需要调用这样的东西:
$.fileDownload(path, {
httpMethod: 'POST',
data: JSON.stringify(searchViewModel),
success: function (result) {
},
error: function (error) {
$("#voidcontainer").html("Error");
}
});
Run Code Online (Sandbox Code Playgroud)
并记住在控制器中创建 cookie。其中src/Common有合适的操作过滤器可以为您完成此操作。
| 归档时间: |
|
| 查看次数: |
4776 次 |
| 最近记录: |