当我在 ASP.NET MVC Action 中调用 Json(null) 时,是否有充分的理由不发送响应?
因为它在 jQuery Ajax 调用而不是完成时触发了失败事件。
这样做的代码是:
public override void ExecuteResult(ControllerContext context)
{
...
if (Data != null)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
if (MaxJsonLength.HasValue)
{
serializer.MaxJsonLength = MaxJsonLength.Value;
}
if (RecursionLimit.HasValue)
{
serializer.RecursionLimit = RecursionLimit.Value;
}
response.Write(serializer.Serialize(Data));
}
}
这似乎是一个愚蠢的问题,但我之所以这么问,是因为我覆盖了 Json 方法,删除了 if。所以我的 $.ajax 调用将起作用,调用 done 事件而不是失败。但是,如果 ASP.NET MVC 团队说“如果”他们可能有充分的理由,那可能会影响我的应用程序
//jQuery 1.9.1
$.ajax({
cache: false,
url: urlGeraSigla,
data: { titulo: $(this).val() },
dataType: "json",
type: 'POST'
}).done(function (resultadoJson) {
$('#@(Html.IdFor(model => model.Sigla))').val(resultadoJson);
}).fail(function(resultadoJson) {
debugger;//ASP.NET MVC Json(null) hit here
});