C# 未从javascript调用PageMethods.Method
我有一个javascript函数,它构建一个字符串,然后将该字符串发送给c#codebehind进行处理。问题是,永远不会调用PageMethods.Method 相关代码: aspx页面: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
<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);
}
}