2012-05-04 115 views
3

隨着ApiController子類,它具有在Post方法將其綁定到一個現有的模型對象的能力如如何從ASP.NET MVC Web API發佈獲取原始JSON字典?

public class RegisterController : ApiController 
{ 
    public void Post(Product product) 

但如果傳入的JSON數據包含我將使用以創建多個模型對象數據,我怎樣才能直接獲取數據?

public void Post(dynamic value) 

將值返回爲空。有沒有像request.POST ['name']之類的簡單的簡單方法?

假設數據的模樣

{ 
    'productID':1, 
    'productName':'hello', 
    'manufacturerID':1, 
    'manufacturerName':'world' 
} 

回答

6

一種選擇,可以使用的ReadAsAsync *方法之一HttpContent實例關閉Request對象

public void Post() { 
    var result = this.Request.Content.ReadAsAsync<string>().Result; 
} 

我不知道是什麼格式的你正在發送你的數據,但你可以這樣檢索它。

你可以試試這個太多個對象...

public void Post(IEnumberable<Product> products) { 

} 
+1

啊,這是我錯過了。關鍵是不要在Post()中放置任何參數,否則它會嘗試綁定並且ReadAsAsync將返回空 – xster