Luk*_*101 8 c# asp.net-mvc asp.net-web-api
我有一个带有路由参数的web api端点.它可以使用或不使用route参数类型.我只是想知道为什么在下面的代码中指定它?
[HttpGet]
[Route("{myId:int}")]
public HttpResponseMessage GetData([FromUri] int myId)
{
//code here
}
Run Code Online (Sandbox Code Playgroud)
这个片段[Route("{myId:int}")].为什么要指定int?这已经有了一个int [FromUri] int myId.路由的int不是多余的吗?这有什么理由吗?
And*_*rei 19
请看这个例子:
[Route("users/{id:int}"]
public User GetUserById(int id) { ... }
[Route("users/{name}"]
public User GetUserByName(string name) { ... }
Run Code Online (Sandbox Code Playgroud)
这里,只有在URI的"id"段是整数时才会选择第一个路径.否则,将选择第二条路线.
所以在你的情况下,它不是必需的.但如果您需要更智能的路线解决方案,那将是必要的.您可以使用许多不同的约束.例如{x:minlength(10)}- 最小长度为10的字符串.{x:max(10)}- 匹配最大值为10的整数.{x:regex(^\d{3}-\d{3}-\d{4}$)}- 正则表达式约束等.
您可以在文档中找到所有可用的约束.
| 归档时间: |
|
| 查看次数: |
2640 次 |
| 最近记录: |