我试图查找有关属性路由的信息,发现有两种实现方式,但是我找不到任何区别。 是否由于支持旧版本或其他功能而存在它们? 谢谢!
p.s。代码可能不是很准确,因为我刚刚开始学习ASP。 p.p.s.如果不清楚,我将尝试解释。
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
}
}
答案 0 :(得分:1)
Route
是方法特定的,而HttpGet
显然暗示仅GET请求将被接受。通常,您要使用以下特定属性:HttpGet
,HttpPost
等。Route
应该主要用于控制器上,以指定该控制器中所有操作的基本路径。一个例外是如果您要为例外处理/状态代码页创建路由。然后,您应该在这些操作上使用Route
,因为可能会通过多种方法将请求路由到那里。
答案 1 :(得分:0)
我也有同样的问题,经过一些研究后,我的理解如下。我正在标记这个问题试图确认它: