【发布时间】:2021-04-07 10:14:35
【问题描述】:
我对 WebApi 中的删除方法有疑问。它不是从控制器击中的。 这是一个 Web Api 代码,具有属性路由以及接受相同参数的 Get 和 Delete 方法。 当调试器转到控制器时,它不会从 DeleteAsync() 转到 Web Api 中的 Delete 方法。 WebApi 代码:
[Route("api/Products/{id}")]
public IHttpActionResult Get(int id)
{
List<ProductModel> showProductById = dbOperations.ShowProductById(id);
return Ok(showProductById);
}
[Route("api/Products/{id}")]
public IHttpActionResult Delete(int id)
{
int rowId = dbOperations.DeleteProduct(id);
return Ok(rowId);
}
控制器代码:
public ActionResult DeleteProduct(int id)
{
productApiClient.BaseAddress = new Uri(ConfigurationManager.AppSettings["BaseAddress"]);
var response = productApiClient.DeleteAsync("Products/" + id).Result;
return RedirectToAction("Index");
}
【问题讨论】:
-
默认情况下,控制器方法用于 HTTP GET。在 Delete 方法中添加
[HttpDelete]属性。 -
是的,我也用过,但没用。在我在提琴手上执行 web api 并显示“方法”不允许之后。然后我在 webconfig 中更改了一些代码,它起作用了。代码-
标签: c# model-view-controller webapi