为什么ASP.NET MVC在调用Json时不发送响应(null)

时间:2013-02-28 13:47:14

标签: asp.net-mvc json model-view-controller json.net

当我在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方法,删除它如果。所以我的$ .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
        });

0 个答案:

没有答案