【发布时间】:2014-06-27 17:05:33
【问题描述】:
我有一个 aspx 页面。我在其中添加了一个 ScriptManager,并设置了EnablePageMethods=true,并在服务器端创建了一个标记为 [WebMethod] 的静态方法。
我一直使用 WebMethods,以前从未见过此错误。
在 javascript 上,PageMethods 是可访问的。但是当我调用我的方法时,Page_Load 方法被触发,而不是 WebMethod。
我搜索并发现其他人也有这个问题。但没有答案....有什么想法吗?
HTML:
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
JS:
PageMethods.Test()
C#:
[WebMethod]
public static void Test()
{
}
【问题讨论】:
-
要触发对
PageMethods.Test()的JS 调用需要发生什么?点击按钮? -
可能......或任何其他方式。
PageMethods.Test()被正确调用。 -
是的,但是如果是通过按钮单击并且您没有阻止该单击导致对服务器的回调(通过
event.preventDefault()),则会触发页面加载。 -
确实如此,但事实并非如此。我尝试通过不同的方式调用它,它总是一样的。我创建了另一个解决方案,并粘贴了相同的代码,并且正确调用了 WebMethod。我正在处理的项目中一定有一些我遗漏的东西......也许是 web.config 上的一些东西......
标签: c# javascript asp.net ajax