now*_*ed. 3 .net c# http asp.net-web-api
只是古玩。我正在查看互联网上的一个网络项目。
而代码流程是这样的:
[RoutePrefix("/person")]
public class PersonController : ApiController
{
//....
[Route("/register")]
public IHttpACtionResult RegisterPerson(PersonDto personDto)
{
//....
}
//....
}
Run Code Online (Sandbox Code Playgroud)
注意到上面的代码了吗?没有[HttpGet()]或[HttpPost()]指定。然而,上面的代码在GET调用时失败,但对POST调用有效。
任何想法如何解决此方法的 HTTP-Verb ?
注意:我知道如果方法名以GETor开头POST,则相应地通过HTTPGetor调用该方法HTTPPost。但是这里的方法名称以Register....
任何想法这是如何工作的?
如果方法名称不匹配任何 HTTPVerb,则默认为 [HTTPPost]。
动作选择通过 ReflectedHttpActionDescriptor 类的 GetSupportedHttpMethods() 发生。
请参考以下链接中的代码:https : //aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Http/Controllers/ReflectedHttpActionDescriptor.cs
if (supportedHttpMethods.Count == 0)
{
// Use POST as the default HttpMethod
supportedHttpMethods.Add(HttpMethod.Post);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6117 次 |
| 最近记录: |