我正在尝试使用 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/

    10-11 12:34