首页 > 解决方案 > 字符串参数应该只允许在.net c#中的Web api路由属性正则表达式中使用字母数字和点

问题描述

我有一种方法,在 webapi 中,我使用 swagger 来调用 web api。在 api 请求中,“请求类型”参数应该只允许使用字母、数字和点 (.)。我试过下面的代码,但它不工作

 [HttpGet]
 [SwaggerResponse(HttpStatusCode.OK, Type = typeof(string))]
 [Route(@"testMethod/{requestType:regex(^[A-Za-z0-9. ]+$)}")]
 public IHttpActionResult testMethod(int mid,string requestType = "", )
 {
     //logic
 }

标签: c#asp.net.netasp.net-web-apiswagger

解决方案


在正则表达式中,点通常是任何字符的占位符。因此,你必须逃避它。在 .NET 中,这是通过反斜杠完成的:A-Za-z0-9\.


推荐阅读