2013-04-21 5 views
2

Вот мой JS/Ajax код:сообщение JSON в виде строки

$.ajax({ 
     type: 'POST', 
     data: JSON.stringify(jsonObj), 
     url: 'filter/GetAjaxTestResult', 
     dataType: 'json', 
     contentType: "application/json; charset=utf-8", 
     success: function (data) { 
     alert(data); 
     } 
    }); 

И я хочу, чтобы получить возможность отправлять json как строку. вот что я пытался в MVC/контроллер:

[HttpPost] 
public JsonResult GetAjaxTestResult(dynamic jsonString) 
{ 
    return "";// Here jsonString is null!!! 
} 

Как я могу получить json как string? Является ли это возможным?

+0

Получаете ли вы значение jsonString в методе действий? –

ответ

7

Передайте это так: -

$.ajax({ 
      type: 'POST', 
      data: "{'jsonString':'" + JSON.stringify(jsonObj) + "'}", 
      contentType: "application/json; charset=utf-8", 
      url: 'filter/GetAjaxTestResult', 
      dataType: 'json', 

      success: function (data) { 

      alert(data); 
      } 
     }); 

Другое дело, возвращаемый тип вашего действия является JsonResult, я боюсь, что вы не можете сделать возврат «»; вам нужно будет вернуть JsonResult, что-то вроде return Json(...);

+1

Я удивлен, но это работает! – levi

+1

Да, это потому, что ваша сериализованная строка должна быть передана как значение функции json object prop с тем же именем, что и в вашем аргументе action. – PSL

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