Why. net основные методы веб API, требуют HttpMethodAttribute для сопоставления с соответствующим типом запроса Get / put / post / delete - PullRequest
1 голос
/ 20 января 2020

У меня есть 2 проекта

Один из них находится в .NetFramework 4.8

WebAPi SampleController Controller :

namespace Samples.FrameWork.Mvc.Controllers
{
    public class SampleController : ApiController
    {
        // GET: api/Sample
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }
}

Другое в .NetCore 2.2

Контроллер SampleController WebAPi :

     namespace Samples.NetCore.WebApi.Controllers
     {
            [Route("api/[controller]")]
            [ApiController]
            public class SampleController : ControllerBase
            {
                // GET: api/Sample
                [HttpGet]
                public IEnumerable<string> Get()
                {
                    return new string[] { "value1", "value2" };
                }
            } 
  }

т. .. в Dot NetFrameWork действия будут выполняться на основе имени

, для приведенного выше примера имя метода

будет равно

  Get(){}
  Post(){}
  Put(){} 
  Delete(){}

, если вышеуказанные методы запрашиваются на основе Тип запроса будет автоматически сопоставлен с соответствующим методом.

но когда дело доходит до net основного веб-API, оно также работает, но с помощью HttpMethodAttribute.

мой вопрос: почему. net основные методы веб-API не работают без HttpMethodAttribute, как он работает в. net framework?

...