2013-04-21 90 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!!! 
} 

我怎樣才能得到jsonstring?可能嗎?

+0

您是否獲得在操作方法jsonString的價值? – 2013-04-21 23:00:59

回答

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 2013-04-21 23:18:21

+1

是的,這是因爲你的序列化的字符串應該作爲json對象的prop值傳入,並使用與action參數中定義的相同的prop名稱。 – PSL 2013-04-21 23:22:20