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不会改变我的问题。