... думаю, я первый, кто спросит об этом?Было найдено несколько типов контроллеров, соответствующих URL. Это может произойти, если маршруты атрибутов на нескольких контроллерах соответствуют запрашиваемому URL-адресу
Скажет у вас есть следующие маршруты, каждый объявлено на другой контроллере:
[HttpGet, Route("sign-up/register", Order = 1)]
[HttpGet, Route("sign-up/{ticket}", Order = 2)]
... вы могли бы сделать это в MVC 5.0 с тем же кодом для параметра Order
исключения. Но после обновления до MVC 5.1 вы получите сообщение об ошибке в заголовке вопроса:
Было найдено несколько типов контроллеров, соответствующих URL. Это может произойти, если маршруты атрибутов на нескольких контроллерах соответствуют запрошенному адресу .
Значит, новый RouteAttribute.Order
собственности является только контроллером уровня? Я знаю, что в AttributeRouting.NET вы можете делать SitePrecedence
. Единственный способ иметь маршруты, подобные приведенным выше, когда все действия находятся в одном контроллере?
Update
К сожалению, я должен был упомянуть эти маршруты на контроллерах MVC, не WebAPI. Я не уверен, как это влияет на ApiControllers.
Взгляните на это, что сработало для меня. http://stackoverflow.com/questions/23094584/multiple-controller-types-with-same-route-prefix-asp-net-web-api/23097445?noredirect=1#23097445 – user1145404
Это абсолютная катастрофа. Это сломало мой весь сайт. Есть ли какое-нибудь реальное решение? – BowserKingKoopa
Можете попробовать regex: https://stackoverflow.com/questions/26806395/mvc-route-attribute-error-on-two-different-routes?rq=1 Также будет пытаться настроить ограничение маршрута: https: // blogs. msdn.microsoft.com/webdev/2013/10/17/attribute-routing-in-asp-net-mvc-5/ – nmit026