0
我有一个控制器方法将html转换为excel,当它不是一个web方法时它工作正常。但是当html字符串变得太大时停止工作。我将它转换为我通过jQuery调用的web方法。它将数据传递给方法,但不再创建Excel文件。该方法内的代码没有改变。唯一的区别就是我称之为[HttpPost]装饰的方式。代码如下:C#MVC HTML到EXCEL不起作用
[HttpPost]
[ValidateInput(false)]
public void ExportExcel(string aContent)
{
StringBuilder sb = new StringBuilder();
sb.Append(aContent);
Response.ClearContent();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=ProjectData.xls");
Response.Write(sb);
Response.End();
}
这是jQuery的东西:
// namespace
var excel = excel || {};
$(document).ready(function() {
$('#ExcelUrl').on('click', function() {
var table = $('#tableName').val();
var content = $('#' + table).html();
excel.utilFunctions.exportToExcel(content);
});
});
excel.utilFunctions = (function ($) {
var exportToExcel = function (content) {
$.ajax({
url: "/Home/ExportExcel",
type: "POST",
data: { aContent: content }
}).done(function(data) {
alert(data);
}).fail(function(error) {
alert(error.responseText);
});
};
//public functions
return {
exportToExcel: exportToExcel
};
})(jQuery);
任何帮助表示赞赏。