Обработка нескольких конечных точек в веб-API .NET Core 3.1 с помощью параметров запросаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Обработка нескольких конечных точек в веб-API .NET Core 3.1 с помощью параметров запроса

Сообщение Anonymous »


Я переношу контроллеры с .NET Framework на .NET Core и хочу, чтобы они были совместимы с вызовами API из предыдущей версии. У меня проблема с обработкой нескольких маршрутов из параметров запроса.

Мой пример контроллера:

[Маршрут("/api/[контроллер]")] [Маршрут("/api/[контроллер]/[действие]")] открытый класс StaticFileController: ControllerBase { [HttpGet("{имя}")] public HttpResponseMessage GetByName (имя строки) { } [HttpGet] общедоступный IActionResult Get() { } } Вызов api/StaticFile?name=someFunnyName приведет меня к действию Get() вместо ожидаемого GetByName(string name ).

Чего я хочу достичь:
[*]Вызов GET api/StaticFile -> переходит к действию Get() [*]Вызов GET api/StaticFile?name=someFunnyName -> переходит к действию GetByName()
Мой app.UseEndpoints() из Startup.cs содержит только эти строки:

endpoints.MapControllers(); конечные точки.MapDefaultControllerRoute(); Если я использую [HttpGet] везде и добавляю (имя строки [FromQuery]), я получаю AmbigiousMatchException: запрос соответствует нескольким конечным точкам

Спасибо, что нашли время помочь мне (и, возможно, другим)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»