Pytanie w sprawie asp.net, asp.net-mvc-3 – Asp.Net MVC3, powracający sukces JsonResult

6

Muszę również zwrócić dane JSON, które zawierają wartość sukcesu (prawda lub fałsz), również musi mieć komunikat o wyniku.

więc używam Dictionary do przechowywania danych, ale gdy powraca do danych Jason, zawiera „” (Quot).

JsonResult = new Dictionary<string, string>();
JsonResult.Add("Success", "False");
JsonResult.Add("Message", "Error Message");
return Json(JsonResult);

wraca,

{"Success":"False","Message":"Error Message"}

ale ja potrzebuję,

{Success:False,Message:"Error Message"} //with out "" (Quot)

Czy ktoś o tym wie?

Dziękuję Ci!

Twoja odpowiedź

1   odpowiedź
32
{"Success":"False","Message":"Error Message"}

jest poprawny JSON. Możesz to sprawdzićtutaj. w jsonlint.com

Nie potrzebujesz nawet słownika, aby zwrócić ten JSON. Możesz po prostu użyć anonimowej zmiennej takiej jak ta:

public ActionResult YourActionMethodName()
{
   var result=new { Success="False", Message="Error Message"};
   return Json(result, JsonRequestBehavior.AllowGet);
}

Aby uzyskać dostęp do tych danych od klienta, możesz to zrobić.

$(function(){
   $.getJSON('YourController/YourActionMethodName', function(data) {
      alert(data.Success);
      alert(data.Message);
   });
});
@BZink: Masz rację. JSON tego OP jest ważny. powinien być problemem w jego skrypcie klienta. Zaktualizowałem swoją odpowiedź, żeby o tym wspomnieć. Shyju
+1 Przyszedłem napisać to, chociaż nie użyłbym zmiennej, ale to tylko moje preferencje :) mattytommo
Klucz Sukcesu nadal musi być w cudzysłowie, a twój kod to robi. Jeśli OP nie ma literówki ... prosi o niepoprawne JSON. Twój kod zwraca {„Success”: „False”, „Message”: „Komunikat o błędzie”} BZink
@mattytommo: Uwielbiam anonimowe typy w C # w takich scenariuszach Shyju
contentType: „application / json”; również w porządku mzonerz

Powiązane pytania