[asp.net-mvc]为什么指定路由参数类型在 web api 吗?

发布时间: 2016/10/9 6:15:31
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个 web api 的终点上,与路由参数。它的工作有无工艺路线参数类型。我只是想知道为什么在下面的代码中指定这吗?

[HttpGet]
[Route("{myId:int}")]
public HttpResponseMessage GetData([FromUri] int myId)
{
    //code here
}

这段代码 [Route("{myId:int}")] 。为什么指定 int?在这个已经是 int [FromUri] int myId 。Int 的路由不是多余吗?是否有任何理由为此?

解决方法 1:

请此示例,参阅︰

[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}$)} -正则表达式约束等。

您可以在文档中找到所有可用的约束条件。

赞助商