簡體   English   中英

所有方法都充當ASP.NET WEB API控制器中的HTTP動詞(Get,Put,Post和Delete)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM