2014-01-15 160 views
0

嘗試構建有效的請求以供wcf restful服務使用。但整整一個小時都做不到,我不明白它爲什麼不起作用。其他AP是什麼返回JSON工作正常,我測試了他們。現在需要修復請求API。 enter image description here與Json身體向MVC resful服務發送POST請求

我把斷點指向AddMeal方法的實現,但她沒有觸發。我覺得不對勁符合我的要求或屬性

//Add Meal 
    [OperationContract] 
    [WebInvoke(UriTemplate = "AddMeal", 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, Method = "POST")] 
    bool AddMeal(string meal); 
+0

你會得到什麼錯誤?附上一個調試器來查明或打開「應用程序」事件日誌。 – greg84

回答

1

您的WCF方法需要另外一種string,然而,該模型粘結劑將嘗試你的JSON綁定,這將無法正常工作的字符串。使用MVC時,應該使用模型,創建一個代表您的JSON數據的模型,例如

public class Meal 
{ 
    public DateTime EatedTime { get; set; } 
    public decimal Amount { get; set; } 
    public int PatientID { get; set; } 
    public int MealTypeID { get; set; } 
    ... 
} 

然後更新您的簽名,以期望模型

bool AddMeal(Meal meal) 

你應該找到的數據綁定到meal模型。

+0

謝謝!這是有幫助的!我決定使用NotMapped屬性將字符串轉換爲DateTime與我的模型。還有一個問題需要將[DataContract]和[DataMember]應用於我的模型?我看到它無論如何工作 – Ark

+0

@Ark沒有默認模型聯編程序應處理反序列化。但是,因爲它是WCF,所以如果您要返回一個模型,即「Meal GetMeal(...)',您可能需要這樣做。 – James

+0

我的意思是我想要使用相同的模型通過EF與數據庫進行交互,並將這些模型用於WCF服務:綁定,驗證等 – Ark