Могу ли я изменить запрос веб-службы, отправляемый с помощью CascadingDropDown? - PullRequest
0 голосов
/ 10 июля 2019

Я младший разработчик в команде веб-сервисов, которой поручено переписать старую (2009) службу SOAP в безопасную службу REST.Я работаю в компании, которая использует VB и имеет очень большое решение, которое обслуживает более 20 клиентов и их соответствующих сайтов.После поиска я обнаружил, что этот сервис SOAP вызывается только из 1 Ajax Controller - этот контроллер вызывается всего 5 страницами или около того.

В этом контроллере есть только два места, которые вызывают эту службу: 2 CascadingDropDowns из AjaxControlToolkit.Его цель состоит в том, чтобы иметь возможность выбирать местоположения с учетом типа области.

Я реорганизовал старую службу с шаблоном наших существующих служб REST и сделал их вызовы POST.Я успешно проверил локально в Postman и получил список областей для переданного типа области. Однако, когда я подключил этот путь к CascadingDropdown, я получил 405: Метод не разрешен.Я понял, что CascadingDropdown передал строку запроса с вызовом GET.

Есть ли способ изменить вызов, выполняемый CascadingDropDown, и сделать его вызовом POST?Я заметил, что в CascadingDropdown есть логическое свойство UseHttpGet, но у нас AJAXToolkit v4.1;Я не думаю, что свойство существует в этой версии, поскольку они на v19, и я не могу получить доступ к этому свойству в VS.Как я уже сказал, решение большое, и его компиляция занимает 3 часа, поэтому я не уверен, что попытка обновления может привести к сбою.Я решил переписать методы API как вызовы GET, но есть еще одна проблема, по которой мне нужно передать токен с запросом на прохождение внутреннего фильтра, который я наложил на службу;так что в любом случае мне нужен способ изменить отправляемый запрос.

Вот выпадающие списки:

<cc1:CascadingDropDown ID="cddState" runat="server" Category="Area" PromptText="<%$Resources: Resource,NoneSelected%>"
        ServiceMethod="GetStates" ServicePath="*pathplaceholder*"
        TargetControlID="ddlState" ParentControlID="ddlAreaType" BehaviorID="cascade_me"
        Enabled="True"/>

<cc1:CascadingDropDown ID="cddArea" runat="server" Category="Area" PromptText="<%$Resources: Resource,NoneSelected%>"
        ServiceMethod="GetAreas" ServicePath="*pathplaceholder*"
        TargetControlID="ddlArea" ParentControlID="ddlAreaType" BehaviorID="cascade_me"
        Enabled="True"/>

Страницы, использующие этот элемент управления, - это страницы, на которые вы действительно должны перейтидобраться до.Все остальные поиски в передней части сайта уже используют обновленный контроллер.Я не слишком хорошо разбираюсь в нашем интерфейсе, но я думаю, что было бы проще реализовать этот новый элемент управления ajax, чем переписать этот сервис и реализовать его.Но я уже потратил много времени на этот билет, и, как младший разработчик, я не думаю, что это хороший способ попытаться передать это другой команде, хотя я думаю, что это эффективное решение.Я уже получил небольшой отпор, когда начал поднимать его.Любой толчок в правильном направлении, я бы очень признателен.Спасибо!

...