![](/img/trans.png)
[英]Web API Controller won't work with POST/PUT/DELETE in ASP.NET Web Forms
[英]All methods act as a HTTP verb (Get, Put, Post And Delete) in ASP.NET WEB API controller
我正在構建一個ASP.NET Core 2.0 WEB API 。 我的控制器有幾種方法。 但是,當我從Postman打電話時,所有的方法都不起作用。 它一直表現得像HTTP(Get,Put,Post和Delete)動詞。 那么,我怎樣才能從客戶端調用我想要的方法。 或者,可以這樣服務嗎?
這是我的代碼:
namespace DutchTreat.Controllers
{
[Route("api/[controller]")]
public class OrdersController : Controller
{
private readonly IDutchRepository _ctx;
private readonly ILogger<OrdersController> _logger;
public OrdersController(IDutchRepository _ctx, ILogger<OrdersController> logger)
{
this._ctx = _ctx;
_logger = logger;
}
[HttpGet]
public IActionResult Get()
{
try
{
return Ok(_ctx.GeAllOrders());
}
catch (Exception e)
{
return BadRequest("Something Went Wrong");
}
}
[HttpGet("{id:int}")]
public IActionResult GetOrdersById(int id)
{
try
{
var orders = _ctx.GetOrdersById(id);
if (orders != null)
return Ok(orders);
else
return NotFound();
}
catch (Exception e)
{
return BadRequest("Something Went Wrong");
}
}
[HttpPost]
public IActionResult Post(Order model)
{
try
{
_ctx.AddEntity(model);
_ctx.SaveChanges();
return Created($"/api/orders/{model.Id}", model);
}
catch (Exception e)
{
return BadRequest("Something Went Wrong");
}
}
public IActionResult SampleMethod()
{
// Sample Method Definition
return null;
}
}
}
我要求郵遞員: http:// localhost:8888 / api / orders / SampleMethod它顯示404未找到 !
SampleMethod
缺少路由屬性,這就是為什么它在調用時顯示404 Not Found 。
更新操作以使用適當定義的路由模板和HTTP {Verb}
以下示例為操作定義HTTP GET。
//GET api/orders/SampleMethod
[HttpGet("SampleMethod")]
public IActionResult SampleMethod() {
// Sample Method Definition
return Ok();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.