C# 未从javascript调用PageMethods.Method

C# 未从javascript调用PageMethods.Method,c#,asp.net,scriptmanager,pagemethods,C#,Asp.net,Scriptmanager,Pagemethods,我有一个javascript函数,它构建一个字符串,然后将该字符串发送给c#codebehind进行处理。问题是,永远不会调用PageMethods.Method 相关代码: aspx页面: <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" runat="server" /> <script type="text/javascript

我有一个javascript函数,它构建一个字符串,然后将该字符串发送给c#codebehind进行处理。问题是,永远不会调用PageMethods.Method

相关代码:

aspx页面:

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true"
    runat="server" />
<script type="text/javascript">
function makeString() {
        debugger
        var a = document.getElementById("ddlRptYear").value + "_";
        var b = document.getElementById("ddlRptType").value + "_";
        var c = document.getElementById("ddlGeography").value + "_";
        var d = "";
        var e = "";
        var x = document.getElementById("ddlTouchPoint");
        var y = document.getElementById("ddlAOR");

        if (x.disabled == false) {
            d = x.value + "_";
        }

        if (y.disabled == false) {
            e = y.value;
        }

        var pptString = a + b + c + d + e + ".ppt";
        PageMethods.GetPPTString(pptString, onSuccess, onFail);
    }

我必须在RadioButtonList上启用autopostback,才能点击SelectedIndexChanged方法。它现在可以用了,但我需要在将来想出一些办法来克服不得不发回的问题。

你怎么知道它从来没有被调用过?是否可能在异常到达正确的处理程序之前就发生了异常?您是否检查了流量以确保发送请求,如果是,响应是什么?javascript会在到达该点之前抛出错误吗?我知道它永远不会被调用,因为我已经遍历了代码。javascript中的调试器标记和c#中的中断。javascript调用是异步的,因此它自然会立即返回执行,但真正的问题是它在做什么?您是否检查了流量,并查看了实际发送的内容和返回的内容?如果不这样做,你只会在黑暗中冒险,浪费时间。
[System.Web.Services.WebMethod]
    public static void GetPPTString(string pptString)
    {
        if ((pptString == "") || (pptString == null))
        {
            throw new Exception("Error: No String Sent.");
        }
        else
        {
            throw new Exception(pptString);
        }
    }