jQuery+;WebMethod+;UrlRewriting:如何区分参数和服务器方法名

jQuery+;WebMethod+;UrlRewriting:如何区分参数和服务器方法名,jquery,asp.net,webmethod,Jquery,Asp.net,Webmethod,我的ASP.NET网站将类似URL的URL转换为参数id为1234的“播放器”请求页面 在该页面上,我需要向该页面上的“GetData”方法发出web请求。我想使用jQuery执行请求。我找到的所有教程(例如)都建议在“$.ajax”的“URL”参数中传递URL/方法名 $.ajax({ type: "POST", url: "PageName.aspx/MethodName", // in my case that will be ... what? data: "{}", c

我的ASP.NET网站将类似URL的URL转换为参数id为1234的“播放器”请求页面

在该页面上,我需要向该页面上的“GetData”方法发出web请求。我想使用jQuery执行请求。我找到的所有教程(例如)都建议在“$.ajax”的“URL”参数中传递URL/方法名

$.ajax({
  type: "POST",
  url: "PageName.aspx/MethodName", // in my case that will be ... what?
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    // Do something interesting here.
  }
});
问题是,如果我指定“player/1234/GetData”,那么请求将执行到“player”页面,但ASP.NET不会调用GetData方法

我是否应该在此页面上实现自定义逻辑并调用“GetData”以执行web请求?如果是,我如何确定该请求是对WebMethod执行的

或者我应该以如下方式提供“普通”url

我可能错过了什么?jquery是否允许在单独的字段中指定“方法名称”?或者我应该配置我的网站来正确处理这个问题


请告知。欢迎任何意见

不知道如何解决这个问题。。所以我向web服务发出请求(URL包含绕过URL重写的.asmx)


如果您知道如何解决原始问题-请提供建议

Budda,我看到你的问题时也遇到了同样的问题

我的解决方案可能不是最好的,就是给我的电话添加一个假分机,在我的例子中是“jq”,如下所示:

url: "<%: ResolveUrl("~/PagePath/PageName.aspx") %>/WebMethod.jq"
<add input="{R:2}" negate="true" pattern="\.jq" />
如果您有任何其他规则,则必须使用一个条件跳过它们,例如,如果您使用一个规则删除扩展,则可能需要在规则的条件中添加如下内容:

url: "<%: ResolveUrl("~/PagePath/PageName.aspx") %>/WebMethod.jq"
<add input="{R:2}" negate="true" pattern="\.jq" />

我正在使用
{R:2}
,因为我发现URL重写模块没有将
WebMethod.jq
作为URL的一部分,如果它找到
aspx
扩展名。
{R:2}
将用于我的模式,但它可能会因您的规则模式而改变

仅仅使用Page WebMethod听起来可能太复杂了,但是在初始配置之后,您只需要为脚本中的调用添加
.jq
扩展名


希望这对你有帮助

好吧,这并不能解决你的问题,但是如果有人在帖子上遇到同样的问题,我会把答案留在那里。