c# - Route parameters and multiple controller types -


I have an asp.net web API, which is using attributes for routing on controllers. There are no path attriutes at the action level, the path to accessing a resource is: [Root ("{ID}"] Public MyApiController: ApiController {Get Public HttpResponseMessage (GUID ID) { // ...}}

My problem is that when I want to make a search controller, then I should have a URL

  [root ( "Search")]  

But this is the result of an error:? Multiple controller types found that the URL matches it is sure The exact match path is possible before the selection is made to normal

Technically, the phrase search can be a valid identity card for the first controller, but As a {ID} a GUID, this case will never happen, thus I want to select the controller with the exact match path.

You can use Route barriers to work . You can disrupt your ID route to accept valid GUIDs for deletion.

Web site:

Public class MyApiController: ApiController {Get Public HttpResponseMessage (GUID ID) {New HTTPPRESS Passwords (HTTPPatus code.OK); }}

The search controller will match a URL such as "/ search" . Here is the controller:

  [System.Web.Http.Route ("search")] Public class SearchController: ApiController {Get Public HttpResponseMessage () {New HttpResponseMessage Return (HttpStatusCode.OK) ; }}  

The restriction will stop the matching conflict in the router.


Comments