【发布时间】:2012-01-06 15:45:44
【问题描述】:
我查看了之前发布的 jQuery/MVC 问题,但没有找到可行的答案。
我有以下 JavaScript 代码:
appCode.runReports = function (e) {
var reportList = '';
$('.rptCheck:checked').each(function (index) {
reportList += ($(this).attr('reportName') + ',');
});
$.ajax({
url: '/Report/RunReports/?reports=' + reportList,
error: appCode.reportAjaxFailure,
success: appCode.listRunningReports,
complete: appCode.ajaxComplete,
dataType: 'json'
});
e.preventDefault();
}
$(document).ready(function () {
$('#runReportsButton').click(appCode.runReports);
});
它调用的 URL 使用以下控制器:
namespace workflowDemoMVC.Controllers
{
public class ReportController : Controller
{
public JsonResult RunReports(string reports = "")
{
try
{
var ret = reports.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
return Json(ret, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
ide.Trace.WriteLine(ex.ToString());
return Json(null, JsonRequestBehavior.AllowGet);
}
}
}
}
当我在 dev 中运行代码时,控制器操作按预期执行并返回,但 AJAX 调用(完成、错误或成功)中定义的任何回调都不会触发。曾经,在较早的代码版本中,我看到了一个 500 编码的异常(内部服务器错误),但现在我什么也没看到。
环境:MVC3、jQuery1.6 .net4
【问题讨论】:
-
jekke - 我知道你没有提到它,但是 firebug 在运行代码时会报告什么?
-
您在 FireBug 控制台或您正在使用的 javascript 开发人员工具栏中看到了什么?错误?是否正在发送 AJAX 请求?服务器响应什么?
-
猜猜我们都同意了 :)
-
其实它在 Firefox 中运行良好,所以 Firebug 并没有多说什么。事实证明这是一个仅限 IE 的错误。
标签: javascript jquery ajax asp.net-mvc jsonresult