2014-12-27 12 views
1

我想使用提琴手組成一個ASP.Net MVC控制器/動作的HTTPRequest。但是,在這個請求中,我希望能夠將JSON對象作爲對象傳遞,而不是簡單地將其作爲映射到方法中不同參數的鍵值對。我希望能夠在Controller/Action方法中測試傳遞一個複雜類型作爲一個參數。提琴手HttpRequest作曲家 - json.stringify

這可以在JQuery中使用Json.stringify({{json here}})完成,它將對象作爲對象傳遞給MVC,並且不會將其解析爲KVP。再一次,我只是希望能夠在Fiddler中測試相同的行爲,如果可能的話。

提琴手請求enter image description here

回答

1

這個問題的答案是比我想象的簡單。 Json.stringify的核心是將Json字符串包裝成一個對象,然後該對象成爲一個單獨的KVP對象,然後根據傳入的Json對象的成員和值自動映射該對象,並將其轉換爲複雜類型控制器/操作中的對象參數。

所以,我所要做的就是包裝JSON對象的符號,

{ 
     "FirstName": "Your", 
     "LastName": "Mom", 
     "Email": "[email protected]", 
     "FilmAndSiteUpdates": true, 
     "CompanyUpdates": true 
} 

成JSON對象「實例」,所以由方法簽名相同的名稱將其分配給成員發言,像這樣...

{ 
    "input": { 
      "FirstName": "Your", 
      "LastName": "Mom", 
      "Email": "[email protected]", 
      "FilmAndSiteUpdates": true, 
      "CompanyUpdates": true 
    } 
} 

...和ASP.NET MVC爲您隱式投射。