如何根据可能值的数组

时间:2015-08-28 16:11:42

标签: asp.net-web-api routes asp.net-web-api2

我正在为以下路线构建WebApi v.2方法:

[Route("api/{entityName}/logo/{entityId}/{size:char}")]
public HttpResponseMessage GetLogo(string entityName, string entityId, char size) {...}

现在,我需要将size参数限制为三个字符之一:sml。如果size不是其中之一,我不希望这条路线匹配。

有可能吗?

1 个答案:

答案 0 :(得分:1)

我认为这样的事情可能会起作用

  [Route("api/{entityName}/logo/{entityId}/{size:regex(^[sml]?$)}")]

您可以使用直接路线模板中使用的约束类的速记参考向直接路线添加约束。

可在此处找到速记直接路线正则表达式类的完整列表

http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#constraints

堆栈溢出上一个问题类似的主题 Regex in Route attribute - RESTful API ASP.NET Web API