我的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