我可以修改随CascadingDropDown发送的Web服务请求吗?

时间:2019-07-09 22:36:29

标签: vb.net rest web-services ajaxcontroltoolkit cascadingdropdown

我是Web服务团队的一名初级开发人员,负责将旧的(2009年)SOAP服务重写为安全的REST服务。我在一家使用VB的公司工作,该公司拥有非常庞大的解决方案,可以处理20多个客户及其各自的站点。搜索后,我发现仅从1个Ajax控制器调用了该SOAP服务-该控制器仅被5页左右的页面调用。

在此控制器中,只有两个地方可以调用此服务:AjaxControlToolkit中的2个CascadingDropDowns。目的是能够选择给定区域类型的位置。

我使用现有REST服务的模式重构了旧服务,并对其进行了POST调用。我在本地的Postman中成功进行了测试,并获得了传入的区域类型的区域列表。但是,当我将此路径插入CascadingDropdown时,出现了405:Method不允许的情况。我意识到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控件要比重写此服务并予以实现要容易得多。但是,我已经花了很多时间在这张票上,作为Jr. Dev,我认为尝试将其传递给另一支球队不是一个好主意,即使我认为这是有效的决定,当我开始提出它时,我已经有点退缩了。任何朝着正确方向的推动,我将非常感激。谢谢!

0 个答案:

没有答案