我尝试了一切,没有任何作用。 PageMethods永远不会到达,但在该调用之前的一切都很好。它可能是代码隐藏的东西吗?我怀疑整个项目我做错了什么。可能是我必须放在页面主文件中的东西吗?
public class GetElements
{
[ScriptMethod, WebMethod]
public static string[] getTargets()
{
//List<string> targetList = new List<string>();
string[] targetList = new string[2];
targetList[0] = "poo";
targetList[1] = "bar";
foreach (Target t in PbcXml.oDeserialized.oTargetList)
{
}
return targetList;
}
}
的javascript:
var a = new Array();
getTarget();
function getTarget() {
PageMethods.getTargets(OnSuccessLoad);
return false;
}
function OnSuccessLoad(response) {
for (var v in response) {
//a.push(v);
alert(v);
}
}
aspx页面:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
答案 0 :(得分:0)
我相信你只需要静态方法的WebMethod
属性......自从我做了一个PageMethod以来已经有一段时间了。此外,您在其他一些不是WebForms页面的类上定义了页面方法。您需要在将调用它的ASP.NET WebForms页面上定义它。我认为这是个问题。
如果在尝试上述操作后仍然无法正常工作,请加载浏览器的Javascript控制台以查看您获得的Javascript错误,并运行Fiddler,http://www.telerik.com/fiddler之类的免费工具,以查看正在进行的操作如果没有JS错误,请求Web请求。
希望有所帮助。