Plusieurs types de contrôleurs ont été trouvés correspondant à l'URL. Cela peut se produire si les routes d'attribut sur plusieurs contrôleurs correspondent à l'URL demandée

...crois que je suis le premier à poser à ce sujet une?

Dire que vous avez les itinéraires suivants, chaque déclaré sur un autre contrôleur:

[HttpGet, Route("sign-up/register", Order = 1)]
[HttpGet, Route("sign-up/{ticket}", Order = 2)]

... vous pourriez le faire dans MVC 5.0 avec le même code, sauf pour les Order paramètre. Mais après la mise à jour MVC 5.1, vous obtenez le message de l'exception à la question du titre:

Plusieurs types de contrôleurs ont été trouvés qui correspondent à l'URL. Cela peut
arriver si l'attribut itinéraires sur plusieurs contrôleurs de correspondre à la demande
URL.

De sorte que le nouveau RouteAttribute.Order propriété est à seulement contrôleur de niveau? Je sais que dans AttributeRouting.NET vous pouvez faire SitePrecedence trop. Est la seule façon d'avoir des routes, comme ci-dessus, lorsque toutes les actions sont dans le même contrôleur?

Mise à jour

Désolé, je devrais avoir mentionné ces itinéraires sont sur des contrôleurs MVC, pas WebAPI. Je ne suis pas sûr de savoir comment cela affecte ApiControllers.

source d'informationauteur danludwig