20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
||||||
1 | ||||||
.NET 4.x [Web Api] Как настраивается роутинг?14.03.2018, 12:24. Показов 1138. Ответов 7
Метки нет (Все метки)
Вопрос в том "в какой последовательности сопоставляются роуты и экшины"?
(ветвет хотелось бы слышать в 2х вариантах: как решить мой случай и в стиле ответа на вопрос "как какой последовательности, из каких папок, выбираются вью) У меня почему-то не работает (работает, но я не понимаю как) роутинг, на Web Api. вот так он настроен
Но если я хочу произвольный роутинг... интерес вопроса в том что если я использую пару атрибутов RoutePrefix и Route то всё будет ОК, но если только второй то в таком случае не сработает! Конкретнее. Есть контролер User и экшин Logout При запросе api/user - всё ок При запросе api/user/logout - не ок. (ну тут то всё понятно) При запросе api/user/logout и атрибуте Route("logout") - не работает (хотя здесь я ожидал "успеха") При запросе api/user/logout и атрибуте RoutePrefix("api/user"), и Route("logout") - всё успешно. Вопрос - почему не сработал 3й пример? (ну и как настроить так что бы RoutePrefix всегда не писать) Добавлено через 11 часов 20 минут
0
|
14.03.2018, 12:24 | |
Ответы с готовыми решениями:
7
Роутинг web api - ошибка при сопоставлении маршрутов C#, WEB API 2, OWIN. Как осуществить кросдоменную авторизацию? Web api Управлять очередью запросов динамически (длиной) и как получить url поступившего в очередь запроса Производительность Web API |
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
14.03.2018, 13:07 | 2 |
DarkOrk, 2й пример не сработал потому что путь не правильный и программа не знает куда обращаться. RoutePrefix пишется на контроллер 1 штука, не думаю что у вас их миллионы и это так затруднительно, в любом случае это улучшает читаемость пути.
0
|
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
|
14.03.2018, 18:18 [ТС] | 3 |
kingzfate, 0.0 cc....пасибо....
Добавлено через 49 секунд А как этот вариант прокомментируете?
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
15.03.2018, 07:15 | 4 |
DarkOrk, перепутал, это и был комментарий к 3 примеру
0
|
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
||||||
15.03.2018, 16:03 [ТС] | 5 | |||||
Ну ок... а если так...
PATCH http://localhost:5533/api/devi... tivestatus и в итоге... { "Message": "No HTTP resource was found that matches the request URI 'http://localhost:5533/api/devices/11/investigations/22/onlyactivestatus'.", "MessageDetail": "No action was found on the controller 'DeviceInvestigations' that matches the request." } Есть соображения? Добавлено через 5 часов 13 минут
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
16.03.2018, 09:45 | 6 |
DarkOrk, ну похоже не может найти DeviceInvestigations в контроллере, вы роут на него дали?
0
|
.NET senior
440 / 358 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
|
17.03.2018, 15:01 | 7 |
DarkOrk, обратите внимание, что в атрибуте Route у Вас указано
, а имя параметра метода - deviceId. Насколько мне известно, для корректного сопоставления роута и метода параметры метода и соответствующие им шаблоны подстановки в роуте должны иметь одинаковые имена.
1
|
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
|
19.03.2018, 21:19 [ТС] | 8 |
bax_tang, да, да... спасибо! Я уже тоже, давно нашёл - это моя ошибка.
В общем, в доках не нашёл, но как практика показала - роут мап с роут атрибутами не считается. И по этому или одними, или другими играться (к сожалению). Просто, в процессе ковыряния наковырял, в качества бонуса всем интересующимся. Если влепить атрибут Route на экшен (даже без скобок) то эта штука будет говорить что этот экшен типа САМОГО дефолтного, на уровне /Home/Index. Минут 15 не мог понять что это за баг такой... а вот так оказалось.
0
|
19.03.2018, 21:19 | |
19.03.2018, 21:19 | |
Помогаю со студенческими работами здесь
8
Клиент Web Api Web API Сервер Асинхронность в Web API Авторизация в Web API Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |