ASP.NET AJAX PageMethods调用.NET 4.5 IIS 7.5的整个页面

我在aspx页面的代码隐藏中调用pageMethod。 我得到整个页面的响应而不是webMethod响应。 此外,我尝试使用jquery调用相同的webMethod并将整个页面作为响应。

Client:  function TestNumber() { PageMethods.getNumber(ResponseTest); } function ResponseTest(response){ var num = response.d; } CodeBehind: [WebMethod] public static int getNumber() { return accountNumber; } 

我正在使用.NET 4.5.1和IIS7.5,我认为问题是在VS2013中构建的无扩展URL中实现的。 我使用以下web.config sys.webserver

               

我通过Jquery ajax调用尝试了相同的操作并获得了整页。 我错过了什么吗?

如果您使用的是友好url,请添加

 PageMethods.set_path(PageMethods.get_path() + '.aspx'); 

到你的js

祝好运!

友好URL(无扩展URL库是默认项目模板的一部分)不支持调用[WebMethod]例程。 如果必须使用[WebMethod],请从项目中卸载友好URL。 这可以从Nuget Package Manager窗口完成 。

删除此软件包后,您可能需要修复项目和Web.config文件中的链接以添加缺少的.aspx扩展名。

是的,它似乎是web.config设置。

尝试从部分删除此行

只需添加