我的javascript代碼:我的C#代碼如何正確發送PUT請求到webAPI應用程序?
$.ajax({
type: "PUT",
url: "/api/WordsAPI/"+wordData.ID,
data: { word: wordData}
});
部分:
// PUT: api/WordsAPI/5
[ResponseType(typeof(void))]
public IHttpActionResult PutWord(int id, Word word)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != word.ID)
{
return BadRequest();
}
[...]
}
在VisualStudio中調試程序,我可以看到應用程序執行第二錯誤請求。服務器端變量「word」中的所有數據均爲空。我不知道爲什麼。 「id」變量是可以的,它存儲正確的ID。
在Firefox的JavaScript調試器中,一切似乎都沒有問題。 wordData不爲空(wordData.id正確發送到服務器),我可以看到所有數據都成功發送到服務器。
什麼可能是錯的?我該怎麼辦?
編輯:
在Firefox請求(這是由瀏覽器發送):
應該工作..嘗試改變'數據:{字:wordData}''到的數據:JSON.stringify(wordData )'並確保你的'wordData'與'Word word'具有相同的屬性 –
你也可以用'[FromBody]'屬性標記'word' –
我不確定「wordData是否具有與Word字相同的屬性」。我的意思是:在Word類中,我有一個包含DateTime值的屬性。在我的應用程序中,我將Word變量發送給客戶端,客戶端修改此數據並將其發送回服務器。我懷疑「DateTime」屬性實際上是服務器端的「字符串」。那我該怎麼辦? – Piotrek