簡體   English   中英

Web API 2默認路由方案

[英]Web API 2 default routing scheme

我突然想到了這個問題。

Startup.cs我有:

HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
app.UseWebApi(config);

當我有一個這樣的方法:

[RoutePrefix("api/Order")]
public class OrderController : ApiController
{
    // don't use any attribute here
    public IHttpActionResult HelloWorld()
    {
        ...
        return Ok();
    }
}

  1. 可以訪問HelloWorld()嗎?
  2. 應該發送GET還是POST或任何其他動作?

您可以訪問到HttpWorld()使用GET如果重命名方法GetHelloWorld() POST重命名為PostHelloWorld()

但是我更喜歡使用[HttpGet][HttpPost] ,...屬性,即使我的操作方法名稱中具有“ Get”或“ Post”字符,也可以避免可能的錯誤。

更新

經過一些測試,我意識到關於此的無法調用HelloWorld的評論是不正確的。 的確,如果您對http://<YourProjectUrl>/order進行POST調用,則可以調用HelloWorld()方法。

因此,默認方法為POST,並且由於您尚未為操作方法配置任何Route(考慮到RoutePrefix只是一個前綴,因此需要考慮Route屬性),它將獲得您的控制器名稱,而無需“控制器”(OrderController->訂單)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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