asp.net-web-api - 为什么 .net 核心 web api 方法需要 HttpMethodAttribute 映射到相应的请求类型 Get/put/post/delete
问题描述
我有 2 个项目
一个是在.NetFramework 4.8
WebAPi SampleController 控制器:
namespace Samples.FrameWork.Mvc.Controllers
{
public class SampleController : ApiController
{
// GET: api/Sample
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
}
其他在 .NetCore 2.2
WebAPi SampleController 控制器:
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 核心 Web API 时,它也可以工作,但需要 HttpMethodAttribute 的帮助。
我的问题是为什么 .net 核心 Web API 方法在没有 HttpMethodAttribute 的情况下无法工作,因为它在 .net 框架中工作?
解决方案
推荐阅读
- python-3.x - 无法使用 fbchat 登录 Facebook
- node.js - 使用 Nodejs Lambda 从 S3 上的 .xlsx 文件中读取数据
- javascript - 如何通过 Fabric.js 中的选定项目获取 id
- python - 在我的基于文本的游戏中多次重复代码部分
- c# - 如何删除 FontEditor 标题栏
- kubernetes - 一段时间后 Pod 不可见
- c++ - 使用并行 for_each 组装数据
- apache-spark - 在单个机器上使用 pyspark 设置任务槽
- python - 烧瓶应用程序不工作:“POST /send%22 HTTP/1.1”404
- tabs - Oracle Apex:防止在页面重新加载时查看所有选项卡