我正在寻找有关基于属性的路由的信息,发现可以使用两种不同的属性: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请求会被接受。通常,您希望使用特定属性:HttpGet
、HttpPost
等。Route
应主要用于控制器,以指定该控制器中所有操作的基本路径。一个例外是,如果要为异常处理/状态代码页创建路由。然后,您应该在这些操作上使用Route
,因为通过多个方法的请求可能会路由到那里。