Frage an asp.net-mvc-3, asp.net – Asp.Net MVC3, Rückkehr zum Erfolg JsonResult

6

Ich muss JSON-Daten zurückgeben, die einen Erfolgswert (wahr oder falsch) enthalten, und es muss auch eine Ergebnisnachricht vorliegen.

Also benutze ich Dictionary, um Daten zu enthalten, aber wenn es zu Jason Daten zurückkehrt, enthält es "" (Quot).

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

es kehrt zurück,

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

aber ich brauche,

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

Weiß jemand davon?

Vielen Dank!

Deine Antwort

1   die antwort
32
{"Success":"False","Message":"Error Message"}

ist gültiger JSON. Du kannst es überprüfenHier. in jsonlint.com

Sie benötigen nicht einmal ein Dictionary, um diesen JSON zurückzugeben. Sie können einfach eine anonyme Variable wie diese verwenden:

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

Um von Ihrem Client aus auf diese Daten zuzugreifen, können Sie dies tun.

$(function(){
   $.getJSON('YourController/YourActionMethodName', function(data) {
      alert(data.Success);
      alert(data.Message);
   });
});
@mattytommo: Ich liebe anonyme Typen in C # in solchen Szenarien Shyju
contentType: 'application / json'; auch wunderbar mzonerz
Der Erfolgsschlüssel muss immer noch in Anführungszeichen stehen, und Ihr Code macht das auch. Es sei denn, das OP hat einen Tippfehler ... er fragt nach ungültigem JSON. Ihr Code gibt {"Success": "False", "Message": "Error Message"} zurück. BZink
@BZink: Du bist richtig. Der JSON dieses OP ist gültig. sollte ein Problem in seinem Client-Skript sein. Ich habe meine Antwort aktualisiert, um dies zu erwähnen. Shyju
+1 Ich bin gekommen, um dies zu schreiben, obwohl ich keine Variable verwendet hätte, aber das ist nur meine Präferenz :) mattytommo

Verwandte Fragen