Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 为什么ASP.NET MVC没有´;当我调用Json(null)时不发送响应_Asp.net Mvc_Json_Model View Controller_Json.net - Fatal编程技术网

Asp.net mvc 为什么ASP.NET MVC没有´;当我调用Json(null)时不发送响应

Asp.net mvc 为什么ASP.NET MVC没有´;当我调用Json(null)时不发送响应,asp.net-mvc,json,model-view-controller,json.net,Asp.net Mvc,Json,Model View Controller,Json.net,当我在ASP.NET MVC操作中调用Json(null)时,有什么理由不发送响应 因为它会在jqueryajax调用上触发fail事件,而不是done 这样做的代码是: public override void ExecuteResult(ControllerContext context) { ... if (Data != null) { JavaScriptSerializer serializer = new JavaSc

当我在ASP.NET MVC操作中调用Json(null)时,有什么理由不发送响应

因为它会在jqueryajax调用上触发fail事件,而不是done

这样做的代码是:

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事件而不是fail。 但如果ASP.NETMVC团队说“如果”,也许他们有一个很好的理由,这可能会影响我的应用程序

        //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
        });

什么版本的jquery?奇怪的是,它不会以空响应进行响应。老实说,我用JSON.Net替换了Javascript序列化程序。我发现了一些与您遇到的问题类似的问题。@Chuck Conway,实际上我也在替换它,创建一个JsonNetResult类(它应该有一个自动执行的标志,并在新模板上将该标志设置为true)。但我在我的JsoneTResult中保留了“IF”,以避免破坏任何现有代码