używam ASP.NET MVC odpowiedzieć JSON z jQuery, JSON i trochę do tyłu, przy użyciu tej funkcji trochę Biblioteka:jQuery po JSON nie po powrocie zerowy z ASP.NET MVC
(function($) {
$.postJson = function(url, data) {
return $.ajax({
url: url,
data: JSON.stringify(data),
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
};
})(jQuery);
Tak oczywiście to zadzwonię jak:
$('#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 i ASP.NET MVC 4 wsparcie przedstawić stronę rzeczy (przed, że potrzebne do rozszerzenia ASP.NET MVC do obsługi składania JSON), ale problem biegnę do jest po powrocie. Na kontrolerze często zwróci null w zasadzie powiedzieć „Sukces, nic innego do powiedzenia,” jak:
[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" });
}
Używam tego wzoru często i to działa dobrze - mój sukces/zrobić zwrotna jest wywoływana i wszystko jest dobrze. Ale ostatnio uaktualniłem ASP.NET MVC i jQuery, i to przestało działać - zamiast tego moje niepowodzenie wywołania zwrotnego jest wywoływane za każdym razem, gdy I return Json(null);
. Ponadto sprawdziłem odpowiedź, a zwracany kod statusu jest w rzeczywistości 200, więc serwer nie zawodzi - jQuery tylko to mówi.
BTW globalny '$ (document) .ajaxError ...' 'exception.message' przedstawia" ** Nieoczekiwany koniec wejścia ** "gdy zwróci się' Json (null) '(żeby o tym wspomnieć, nie pomogło mi znaleźć przyczyny problemu). – Slauma