我正在尝试使用 pagemethods 从 JS 函数调用代码隐藏方法,但它没有调用,也没有抛出任何错误...
function example(){
pagemethods.method();
}
**aspx.cs
[webmethod]
public static void method(){
//some logic
}
所以为了找到问题我做了一些负面测试
我评论了 WEBMETHOD,然后它显示错误“对象不支持此属性或方法”。我可以假设这种情况表明 pagemethods 正在工作!!!
然后我将 JS 函数中的调用方法名称替换为 pagemethods.newmethod() 但我没有将方法名称更改为 newmethod..我期待一些错误但它没有给我一个错误..
注意:我在表单声明中有“method=post”..它会影响 pagemethods 吗..
很困惑为什么会出现这个问题!!!
我们可以用任何其他方式而不是 pagemethods 调用代码隐藏方法吗..请指教!!!
最佳答案
在msnd你可以看到一个例子,所以你需要...
在标记中:
<asp:ScriptManager ID="sm" runat="server" EnablePageMethods="true">
<Scripts >
<asp:ScriptReference Path="pm.js" />
</Scripts>
</asp:ScriptManager>
在后面的代码中:您的静态方法,具有属性 [WebMethod]
在 pm.js
中:像这样
function example(){
PageMethods.method();
}
更新
另一种变体是对您的方法使用 ajax 请求,例如使用 jquery 是这样的:
function CallMethod(){
$.ajax({
type: "POST",
dataType: 'json',
contentType: "application/json; charset=utf-8",
url: "YourPage.aspx/yourmathod",
data:JSON.stringify({}), // parameters for method
success: function (dt) { alert(dt);}, //all Ok
error: function () { alert('error'); } // some error
});
}
关于c# - PAGEMETHODS 不适用于 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21219302/