2012-05-15 4 views
5

Мне нужно вернуть данные JSON, содержащие значение успеха (true или false), также необходимо иметь сообщение о результатах.Asp.Net MVC3, возвращающий успех JsonResult

поэтому я использую словарь для хранения данных, но когда он возвращается к данным Джейсона, он содержит «» (Quot).

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

возвращается,

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

, но мне нужно,

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

Кто-нибудь знает об этом?

Спасибо!

ответ

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

действует JSON. Вы можете проверить его here. in jsonlint.com

Вам даже не нужен словарь для возвращения этого JSON. Вы можете просто использовать анонимную переменную следующим образом:

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

Для доступа к этим данным от вашего клиента вы можете сделать это.

$(function(){ 
    $.getJSON('YourController/YourActionMethodName', function(data) { 
     alert(data.Success); 
     alert(data.Message); 
    }); 
}); 
+0

+1 Я пришел, чтобы написать это, хотя я бы не использовал переменную, но это только мое предпочтение :) – mattytommo

+0

@mattytommo: Я люблю анонимные типы в C# в сценариях, как этот – Shyju

+0

Ключ успеха еще должен быть в кавычках, и ваш код делает это. Если у ОП нет опечатки ... он просит недействительного JSON. Ваш код возвращает {«Успех»: «False», «Сообщение»: «Сообщение об ошибке»} – BZink

Смежные вопросы