我想将WebAPI操作方法映射到格式为api/v2/l8n/{cultureCode}
的网址,但为了避免与其他方法发生路由冲突,我需要将cultureCode
参数限制为仅匹配正则表达式{{ 1}},即^\w{2}(?:-\w{2})?$
和sv
,但不是en-GB
。
我在控制器上有hello
属性来处理RoutePrefix
,所以我尝试使用
api/v2/i8n
但随后在配置时抛出错误,指出[Route(@"{cultureString:regex(^\w{2}(?:-\w{2})?$)")]
是一个错误的路由值。我尝试将{cultureString:regex(^\w{2
替换为\w{2}
,同时删除\w\w
并转义我的反斜杠,但后来提交了
路由模板不能以'/'或'〜'字符开头,也不能包含'?'字符。
如果我甚至无法使用@
,我怎样才能创建带有可选部分的正则表达式?
答案 0 :(得分:1)
我希望管道操作员或交替操作员没有这样的限制,使用它和一些锚点,你可以让它工作。
[Route(@"{cultureString:regex(^\w\w(-\w{2}|)$)}")]
以上含义是它匹配两个\w
后跟另外两个\w
或字符串结尾$