我想在创建Excel文件时显示进度条图像。我正在使用ajax调用来调用我的控制器动作方法。它给了我内部服务器错误。 这是我的控制器/ Action方法和Ajax调用.....
public ActionResult GenerateExcelReport(GenerateReportViewModel oGenerateReportViewModel) {
// Create new excel application
excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Visible = false;
excelApp.DisplayAlerts = false;
// Excel Generation Code goes here....
return Json(oGenerateReportViewModel);
}
AJAX Call ....
$(document).ready(function () {
$("#btnSubmitGenerateRpt").click(function () {
$("#divLoading").show();
$.ajax({
url: '/GenerateReport/GenerateExcelReport',
type: 'POST',
data: {},
dataType: 'json',
contentType: 'application/json; charset=utf-8',
error: function (xhr, ajaxOptions, thrownError) {
alert('Error: ' + xhr.statusText + " Thrown Error: " + thrownError + " Options: " + ajaxOptions);
},
success: function (result) {
alert("Function Called!!!");
$("#divLoading").hide();
},
async: true,
processData: false
});
});
});
答案 0 :(得分:0)
当您需要将JSON传递给您的操作时,您必须传递JSON的字符串表示形式,通常使用JSON.stringify:
$.ajax({
...
data: JSON.stringify({}),
...
});
当然,既然你没有传递任何东西,你可以做到
data: "{}",
如果你使用的是默认的contentType
(application / x-www-form-urlencoded; charset = UTF-8),那么你可以传入一个javascript对象,并假设它是一个简单的对象,它会将其转换为POST内容的URL编码键值。为了实现这一目标,您还必须删除processData:false
行。