只是古玩。我正在查看 Internet 上的一个 Web 项目。
代码流程是这样的:
[RoutePrefix("/person")]
public class PersonController : ApiController
{
//....
[Route("/register")]
public IHttpACtionResult RegisterPerson(PersonDto personDto)
{
//....
}
//....
}
你注意到上面的代码了吗?没有指定 [HttpGet()]
或 [HttpPost()]
。然而,上面的代码对于 GET
调用失败,但对于 POST
调用有效。
知道如何解析此方法的 HTTP-Verb 吗?
注意:我知道如果方法名以GET
或POST
开头,则相应地通过HTTPGet
或 调用该方法HTTP 邮寄
。但是这里的方法名以Register...
开头。
知道这是如何工作的吗?
最佳答案
如果方法名称不匹配任何 HTTPVerb,则默认为 [HTTPPost]。
Action 选择通过 ReflectedHttpActionDescriptor 类的 GetSupportedHttpMethods() 发生。
if (supportedHttpMethods.Count == 0)
{
// Use POST as the default HttpMethod
supportedHttpMethods.Add(HttpMethod.Post);
}
关于c# - WebApi 中的默认 HTTP 动词是什么?获取还是发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35797726/