0
Webメソッドではないときに正常に動作したhtmlに変換するコントローラメソッドがありました。しかし、html文字列が大きすぎると作業が中断されました。私はそれをjQuery経由で呼び出すWebメソッドに変換しました。データをメソッドに渡しますが、Excelファイルは作成されません。メソッド内のコードは変更されていません。唯一の違いは、私がそれを呼び出す方法と[HttpPost]装飾です。コードは次のとおりです。C#MVC 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);
すべてのヘルプは高く評価されています。