jQuery post JSON échoue au moment de retourner la valeur null à partir de ASP.NET MVC

- Je utiliser ASP.NET MVC de post JSON à partir de jQuery, et obtenir quelques JSON en arrière, à l'aide de cette petite bibliothèque de fonction:

(function($) {
    $.postJson = function(url, data) {
        return $.ajax({
            url: url,

            data: JSON.stringify(data),
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8'
        });
    };
})(jQuery);

Alors, évidemment, je vais appeler ça comme:

$('#button').click(function() {
    $.postJson('/controller/action', { Prop1: 'hi', Prop2: 'bye' })
    .done(function(r) { alert('It worked.'); })
    .fail(function(x) { alert('Fail! ' + x.status); });
});

ASP.NET MVC 3 et ASP.NET MVC 4 soutenir les soumettre côté des choses (avant que vous avez besoin pour étendre ASP.NET MVC pour gérer la soumission JSON), mais le problème je suis en cours d'exécution est sur le retour. Sur le Contrôleur, j'ai souvent de retourner la valeur null à dire "le Succès, rien d'autre à dire," comme:

[HttpPost]
public JsonResult DoSomething(string Prop1, string Prop2)
{
    if (doSomething(Prop1, Prop2)
        return Json(null); //Success

    return Json(new { Message = "It didn't work for the following reasons" });
}

- Je utiliser ce modèle fréquemment et il fonctionne très bien - à mon succès/fait de rappel est appelée, et tout est bien. Mais récemment, j'ai mis à jour ASP.NET MVC et jQuery, et il a arrêté de travailler à la place de mon échec de callback est appelé à chaque fois que je return Json(null);. Par ailleurs, j'ai inspecté la réponse et la statusCode se retourné est en fait 200, de sorte que le serveur n'est pas à défaut d' - jQuery est juste de dire qu'il est.

BTW le mondial $(document).ajaxError... montre dans exception.message: "fin Inattendue d'entrée" quand Json(null) est de retour (pour ne citer qu'elle, elle ne m'aide pas à trouver la raison du problème).

OriginalL'auteur Chris Moschini | 2013-04-11