我有一个 web api 的终点上,与路由参数。它的工作有无工艺路线参数类型。我只是想知道为什么在下面的代码中指定这吗?
[HttpGet]
[Route("{myId:int}")]
public HttpResponseMessage GetData([FromUri] int myId)
{
//code here
}
这段代码 [Route("{myId:int}")]
。为什么指定 int?在这个已经是 int [FromUri] int myId
。Int 的路由不是多余吗?是否有任何理由为此?
请此示例,参阅︰
[Route("users/{id:int}"]
public User GetUserById(int id) { ... }
[Route("users/{name}"]
public User GetUserByName(string name) { ... }
在这里,如果 URI 的"id"部分是一个整数,只将选中的第一个路由。否则,将选择第二条路线。
所以你的情况它不被必需。但有必要的如果你需要变得更聪明的路线决议。有许多不同的限制,你可以使用。例如 {x:minlength(10)}
-10 的最小长度的字符串。 {x:max(10)}
-匹配最大值为 10 的整数。 {x:regex(^\d{3}-\d{3}-\d{4}$)}
-正则表达式约束等。
您可以在文档中找到所有可用的约束条件。