You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET WebForm中如何用/GetAirlines调用页面的[WebMethod]?

可以通过/GetAirlines调用该WebMethod,以下是两种可行方案:

方案一:调整URL重写规则

你之前的重写规则指向了错误的目标文件,需要改成指向包含GetAirlines方法的reissue_ticket.aspx,同时添加请求方法限制(WebMethod默认仅接受POST):

<system.webServer>
  <rewrite>
    <rules>
      <rule name="RewriteToReissueTicket_GetAirlines" stopProcessing="true">
        <match url="^GetAirlines$" />
        <conditions>
          <add input="{REQUEST_METHOD}" pattern="POST" />
        </conditions>
        <action type="Rewrite" url="Pages/Services/reissue_ticket.aspx/GetAirlines" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

配置后,你的AJAX请求只需将url改为"/GetAirlines"即可,保持其他参数不变。

方案二:添加ASP.NET路由映射

既然已经在global.asax中配置了页面路由,也可以直接添加路由映射到WebMethod:

在RegisterRoutes方法中新增:

route.MapPageRoute(
    "GetAirlinesRoute",
    "GetAirlines",
    "~/Pages/Services/reissue_ticket.aspx/GetAirlines"
);

完成后,AJAX请求同样可以使用url: "/GetAirlines"调用目标方法。

关于你之前的无效配置

你之前的重写规则没生效,原因有两个:

  1. 规则指向的WebServices.asmx并不包含GetAirlines方法,目标路径错误
  2. 未限制请求方法为POST,WebMethod默认拒绝GET请求

内容的提问来源于stack exchange,提问作者arafat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:57:30