我正在尝试在我的页面中导出一些数据,将JSON对象发送到我的控制器,调用此方法:
[HttpPost]
public HttpResponseMessage Export([FromBody]List<PivotGridModel> lstPivotGrid)
{
transporte = GetList();
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.Content = new ByteArrayContent(_Service.Export(transporte.Lista, lstPivotGrid));
response.Content.Headers.ContentType = mediaType;
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = String.Format("Plan_{0:yyyy-MM-dd__HH-mm-ss}.xlsx", DateTime.Now);
return response;
}
当我点击我的页面中的“导出”按钮时,调用的AJAX就是这个:
// the 'url' is the path of my controller and the 'data' is my object
executePostAjaxDataHeaders: function (url, data, headers) {
var obj = null;
utils.vars.callerName = arguments.callee != null && arguments.callee.caller != null ? arguments.callee.caller.name : "";
$.ajax({
type: "POST",
url: url,
async: false,
data: JSON.stringify(data),
headers: headers,
contentType: 'application/json; charset=utf-8',
beforeSend: function () { dxLoadPanel.funcs.show(); },
complete: function () { dxLoadPanel.funcs.hide(); },
success: function (data) { obj = data; },
error: function (request, status, error) { console.log(request); console.log(error); obj = utils.funcs.loadAjaxError(utils.vars.callerName, request, status, error); }
});
return obj;
}
当我点击页面上的按钮时,控制台会返回一个错误消息:
错误:无效的XML:一些随机字符,如: &amp;N &gt;
我错过了什么?我想在我的页面中下载文件...我正在使用“获取”测试它并直接在URL中调用我的控制器,但当我将我的方法更改为帖子(以获取我页面上的数据)时,它停止了工作。