两种基于属性的路由方法:HttpGet(" ") 和 Route(" ")之间有什么区别?



我正在寻找有关基于属性的路由的信息,发现可以使用两种不同的属性:HttpGet("")Route("")。但是,我找不到有关它们之间有什么区别的任何信息。

其中一个是否存在以支持旧的ASP版本,或者这是出于其他原因?

附言我的代码可能不完全正确,因为我刚刚开始学习 ASP。如果有什么不清楚的地方,我会尝试解释。

public class MyController : Controller
{
// APPROACH 1
[Route("api/books")]
[HttpGet]
public async List<Book> GetBooks() 
{
// Implementation
}
// APPROACH 2
[HttpGet("api/books")]
public async List<Book> GetBooks()
{
// Implementation
}
}

Route是方法不特定的,而HttpGet显然意味着只有GET请求会被接受。通常,您希望使用特定属性:HttpGetHttpPost等。Route应主要用于控制器,以指定该控制器中所有操作的基本路径。一个例外是,如果要为异常处理/状态代码页创建路由。然后,您应该在这些操作上使用Route,因为通过多个方法的请求可能会路由到那里。

相关内容

最新更新