C# 什么';这是两种基于属性的路由方法之间的区别:HttpGet(“HttpGet”)和Route(“Route”)?
我正在查找有关基于属性的路由的信息,发现有两种不同的属性可以使用:C# 什么';这是两种基于属性的路由方法之间的区别:HttpGet(“HttpGet”)和Route(“Route”)?,c#,asp.net,asp.net-core,network-programming,C#,Asp.net,Asp.net Core,Network Programming,我正在查找有关基于属性的路由的信息,发现有两种不同的属性可以使用:HttpGet(“”和Route(“”)。然而,我找不到任何关于它们之间区别的信息 它们中是否有一个是为了支持旧的ASP版本而存在的,或者这有不同的原因 另外,我的代码可能不完全正确,因为我刚刚开始学习ASP。如果有什么不清楚的地方,我会尽力解释 public class MyController : Controller { // APPROACH 1 [Route("api/books")] [Http
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
}
}
公共类MyController:Controller
{
//方法1
[路线(“api/books”)]
[HttpGet]
公共异步列表GetBooks()
{
//实施
}
//方法2
[HttpGet(“api/books”)]
公共异步列表GetBooks()
{
//实施
}
}
路由
方法不具体,而HttpGet
显然意味着只接受GET请求。通常,您希望使用特定属性:HttpGet
、HttpPost
等。Route
主要用于控制器,以指定该控制器中所有操作的基本路径。一个例外是,如果您正在为异常处理/状态代码页创建路由。然后,您应该在这些操作上使用Route
,因为通过多个方法的请求可能会被路由到那里。我可以为[HttpGet]
使用[Route(“get/{query}”,Name=“getWithPagination”)]
吗?