如何在 web api 中使用 Put 方法
Posted
技术标签:
【中文标题】如何在 web api 中使用 Put 方法【英文标题】:How to use Put method in web api 【发布时间】:2021-06-09 06:58:02 【问题描述】:这里是我的 put 方法
[Route("api/SPSOnHand/itemcode/item_code")]
[HttpPut]
public HttpResponseMessage Put(String itemcode, [FromBody]SPS_ONHAND _member)
var memberdetail = (from a in db.SPS_ONHANDs where a.ITEM_CODE == itemcode select a).FirstOrDefault();
if (memberdetail != null)
memberdetail.ONHAND_QTY = _member.ONHAND_QTY;
memberdetail.OPR_ID = _member.OPR_ID;
memberdetail.DATE = _member.DATE;
db.SubmitChanges();
return Request.CreateResponse(HttpStatusCode.OK, memberdetail);
else
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid Code or Member Not Found");
这是我在提琴手中测试的内容
我应该怎么做.. 我想使用 itemcode 而不是 id 来更新我的表格
【问题讨论】:
有太多可能出错的地方(例如查询字符串中缺少itemcode
值)。我建议您仅在正文中使用[FromBody]SPS_ONHAND
参数创建简单的api/SPSOnHand/itemcode
方法,并检查它是如何进行的。比你可以慢慢调整它并添加itemcode
参数(并再次检查)
【参考方案1】:
绑定参数必须与路由定义中的占位符同名。试试这个:
[Route("api/SPSOnHand/itemcode/item_code")]
[HttpPut]
public HttpResponseMessage Put(string item_code, [FromBody]SPS_ONHAND _member)
var memberdetail = (from a in db.SPS_ONHANDs where a.ITEM_CODE == item_code select a).FirstOrDefault();
....
【讨论】:
以上是关于如何在 web api 中使用 Put 方法的主要内容,如果未能解决你的问题,请参考以下文章
如何从 ASP.NET MVC 到 ASP.NET Core Web API 的 PUT?
在 Web Api 中使用 Put 或 Delete 方法时,我有啥替代方法来避免 405 Method Not Allowed 错误?
如何让 PUT 和 DELETE 动词与 IIS 上的 Web API 一起使用
如何在使用 AngularJS/Web API/Angular-ui-router 的指令中调用 $http.put 服务后更新页面