c# - 两种基于属性的路由方法:HttpGet("") 和 Route("") 有什么区别?
问题描述
我正在寻找有关基于属性的路由的信息,发现可以使用两种不同的属性:HttpGet("")
和Route("")
. 但是,我找不到有关它们之间有什么区别的任何信息。
是否存在其中之一以支持旧的 ASP 版本,或者这有不同的原因?
PS 我的代码可能不完全正确,因为我刚刚开始学习 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
这些操作,因为通过多种方法的请求可能会被路由到那里。
推荐阅读
- google-chrome - 如何找出 Google Sheet 查询 #N/A 错误(仅在打开时)
- artificial-intelligence - 如何确定水壶问题的 A* 算法的成本和启发式算法
- amazon-dynamodb - 具有低基数分区键的 DynamoDB 全局二级索引是否有大小限制?
- c# - 将渲染器的所有材质更改为一种材质
- regression - 使用比例的 metafor 包中的 R 元回归气泡图
- amazon-redshift - AWS Redshift - 身份字段语法
- asp.net - XmlException:根级别的数据无效。第 1 行,位置 1
- azure-devops - TFS Undo 将团队项目转换为分支
- apache-spark - 通过 ingress 访问所有 kubernetes statefulset pod
- javascript - 返回一个带有创建它的函数的对象作为方法