2016-04-14 17 views
2

に一致することが判明し、私は属性のルーティングを使用して、私のWEBAPIに新しいHttpPostルート「のAPI /エクスポート/エラー/」を追加した、と私はエラーを取得しています:ASP.net WEBAPI複数のコントローラタイプがURL

Multiple controller types were found that match the URL. This can happen if attribute routes on multiple controllers match the requested URL.\r\n\r\nThe request has found the following matching controller types: \r\nMyApp.Controllers.ExportErrorController\r\nMyApp.Controllers.ExportGeneratorController

しかし私は、私が見ている別のコントローラに同じルートを持っていません。

ExportErrorController.cs

[HttpGet] [Route("api/export/error/total/")]

​​

[HttpPost] [Route("api/export/error/")]

[HttpDelete] [Route("api/export/error/{id}/")]

:ここでは、これら二つのコントローラで唯一のルートがあります

ExportGeneratorController.cs

[HttpGet] [Route("api/2/export/{channelId}/")]

[HttpPost] [Route("api/2/export/generate-word/{debugInfo}/")]

[HttpPost] [Route("api/2/export/generate-excel/{debugInfo}/")]

私は2つのコントローラ間で同一持つ任意の場所を見ることができない

答えて

2

どうやらASP.Ne使用するルートを決定する際にパラメータ 'タイプ' ORメソッドを評価しないため、異なる方法であってもルートテキスト「エラー」を 'channelid'の潜在的なパラメータとして見つけて一致させました。パラメータにタイプを追加する

は、それはそうそれを適切に解決する助け: [Route("api/2/export/{channelId:int}/")]

[Route("api/2/export/{channelId}/")]

はそれを変更することで固定されています。

関連する問題