【发布时间】:2013-04-22 00:34:32
【问题描述】:
假设你有一个更新文档的存储库方法:
public Document UpdateDocument(Document document)
{
Document serverDocument = _db.Documents.Find(document.Id);
serverDocument.Title = document.Title;
serverDocument.Content = document.Content;
_db.SaveChanges();
return serverDocument;
}
在这种情况下,实体有两个属性。更新 Document 时,JSON 请求中需要这两个属性,因此向 PUT /api/folder 的请求正文为
{
"documentId" = "1",
"title" = "Updated Title"
}
将返回错误,因为未提供“内容”。我这样做的原因是,即使对于可为空的属性和用户不更新的属性,强制客户端在请求中指定这些字段以避免用空值覆盖服务器端的未指定字段似乎更安全。
这导致我总是要求 PUT 和 POST 请求中的每个可更新属性,即使这意味着为这些属性指定 null。
这很酷吗,或者是否有一种我尚未了解的模式/实践可以通过仅通过网络发送所需的内容来促进部分更新?
【问题讨论】:
标签: asp.net-mvc-3 web-applications asp.net-web-api single-page-application