【发布时间】:2015-05-26 21:29:53
【问题描述】:
我正在开发一个允许客户将表格信息(商家)输入网格的网站。每条记录都可以通过一个唯一的 id 来标识。我正在尝试通过我的 Web API 控制器启用批量更新,而不是单独的 PUT 请求。这些请求是通过页面上的 AJAX 发出的(没有回发/提交)。个别更新工作正常。
这是个别更新的代码:
// PUT api/Merchants/5
public HttpResponseMessage PutMerchant(int id, Merchant merchant)
{
if (!ModelState.IsValid)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
if (id != merchant.MerchantId)
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
db.Entry(merchant).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
我想为批量更新构建一个类似的 PUT(类似这样):
// PUT api/Merchants
public HttpResponseMessage PutMerchants(Merchant[] merchants)
{
...
}
这可能吗?它是否遵循 RESTful 约定?另外,由于一些商家应该更新而另一些商家需要创建,我是否使用 POST 来拆分它们? Web API 控制器通常如何处理这些情况?
【问题讨论】:
-
通常,PUT 用于更新,POST 用于新记录。 stackoverflow.com/questions/630453/put-vs-post-in-rest
标签: c# ajax entity-framework asp.net-web-api