我在我的ASP.NET Web API配置下列路線2項目:從路由配置到屬性路由
config.Routes.MapHttpRoute(
name: "1MandatoryStringParameter",
routeTemplate: "api/{controller}/{data}",
defaults: null,
constraints: new { data = @".+?" }
它用於下列的控制器方法(注意ArrayInput屬性):
[ArrayInput("data",Separator = ',')]
public async Task<IHttpActionResult> Get(int[] data)
{
...
}
我想用Attribute路由代替。
我試圖調用具有以下屬性替換到MapHttpRoute:
[HttpGet]
[Route("api/ActionsForItemTypesList/{data:regex(.+?)}", Name = "1MandatoryStringParameter")]
出它不工作的開箱。我無法通過以下URL訪問我的方法:
api/ActionsForItemTypesList/1,2
如果找不到404方法,
這與路由配置工作正常。
任何幫助表示讚賞。
編輯:修正了客戶端的URL。
編輯2:這是一個問題ApiExplorer(Swashbuckle槓桿ApiExplorer)
如果我修改路由屬性並取出ApiDescription變爲可用的參數(即{}數據)。
兩件事。您可以爲int數組創建自定義路由約束和自定義模型綁定器。 [ASP.NET Web API 2中的屬性路由](https://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2) – Nkosi