C# $.Post asp.net方法调用

C# $.Post asp.net方法调用,c#,asp.net,jquery,post,C#,Asp.net,Jquery,Post,这一定是个经典的问题,但我在网上找不到任何答案。 该网页位于 https://localhost/Secured/Report/FileWriterManager.aspx 这是我的Jquery代码 par = 'some data'; $.post( '/Secured/Report/FileWriterManager.aspx/CallAjax', { strPar: par }, function

这一定是个经典的问题,但我在网上找不到任何答案。 该网页位于

https://localhost/Secured/Report/FileWriterManager.aspx
这是我的Jquery代码

    par = 'some data';
    $.post(
            '/Secured/Report/FileWriterManager.aspx/CallAjax',
            { strPar: par },
             function (msg) {
                 $('#lblError').text('Value Returned: ' + msg);
             }
        );
背后的代码如下所示:

[WebMethod]
public static string CallAjax(string strPar)
{

    return 'OK';

}

当我使用firefox进行调试时,post语句每行执行一行,执行lblError填充。响应是整个FileWriterManager.aspx html代码。我做错了什么?任何帮助都将不胜感激

您可以将
Buffer=“true”
添加到
如果在尝试调用
[WebMethod]
时得到正常的页面响应,则应首先检查ASP.NET Ajax是否配置正确。具体来说,请检查web.config中的
部分

对于ASP.NET 3.5应用程序,使用Visual Studio中的内置web服务器:

<system.web>
  <httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </httpModules>
</system.web>

使用IIS时:

<system.webServer>
  <modules>
    <remove name="ScriptModule"/>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </modules>
</system.web>

这样做的原因是,ScriptModule实际上“截取”了像/WebForm.aspx/WebMethod这样的请求,并处理静态方法的调用和响应的返回。因此,如果没有发生这种情况,很可能模块没有配置


如果已完成配置,则向页面添加
,并启用页面方法。然后测试是否可以使用Firebug调用页面方法:
PageMethods.CallAjax(“foo”)

我可能错了,但我认为您应该在javascript代码中使用
PageMethods.CallAjax(par)
。我尝试了pagemethod,它调用了我的方法,但PageMethods的问题是我无法访问表单中的任何控件。你是什么意思?该方法将返回一个可以放入控件中的字符串
var s=PageMethods.CallAjax(par)$('lblError').text('Result:'+s)。还是我遗漏了什么?没有关于CallAjax背后的代码我需要从表单中获取一些信息。我认为现在这是一个完全不同的问题。谢谢你的帮助,但它甚至没有调用我的方法开始,所以添加Response clear不会改变我的问题。