我正在为以下路线构建WebApi v.2方法:
[Route("api/{entityName}/logo/{entityId}/{size:char}")]
public HttpResponseMessage GetLogo(string entityName, string entityId, char size) {...}
现在,我需要将size
参数限制为三个字符之一:s
,m
,l
。如果size
不是其中之一,我不希望这条路线匹配。
有可能吗?
答案 0 :(得分:1)
我认为这样的事情可能会起作用
[Route("api/{entityName}/logo/{entityId}/{size:regex(^[sml]?$)}")]
您可以使用直接路线模板中使用的约束类的速记参考向直接路线添加约束。
可在此处找到速记直接路线正则表达式类的完整列表
堆栈溢出上一个问题类似的主题 Regex in Route attribute - RESTful API ASP.NET Web API