Asp.net Ajax pageMethods不会触发成功事件处理程序

时间:2014-08-16 08:57:43

标签: c# jquery asp.net ajax pagemethods

我有asp.net ajax页面方法如下,

   [WebMethod]
   public static string UnAuthVote(string vf) 
   {          
       return "";

   }

我这样称呼它,

PageMethods.UnAuthVote("alikhan", success1, error);

我的success1和error方法写成如下,

  function success1(response) {alert("");

       return false;
}
    function error(error) {alert("error");return false; }

问题是它正在调用错误事件。为什么我的代码没有调用pagemethod的成功事件。

帮助 感谢

2 个答案:

答案 0 :(得分:1)

好吧,我正在使用网址重写。这就是我的页面方法无效的原因。

我设置了set_Path属性,如下所示

PageMethods.set_path("Auth/profile.aspx")

现在它应该正常工作

答案 1 :(得分:0)

如果您显示实际错误,则会有所帮助,例如:

 function success1(response) 
 {
   alert(response);
 }
 function error(error) 
 {
   alert(error);
 }

您还可以使用调试器或开发人员工具来识别问题。该错误可能会显示在控制台选项卡上。调试器将允许您比编辑代码显示alerts更有效地进行故障排除,但我知道在某些情况下这是更可取的。您也可以通过执行以下操作写入console

 function success1(response) 
 {
   if(window.console) console.log(response);
 }
 function error(error) 
 {
   if(window.console) console.log(error);
 }

这样做的好处是它不会以用户的方式进入,并且仅在控制台打开时才可见。检查window.console可以避免在登录到控制台时抛出的异常(如果不可用)。

如果您不知道返回对象的属性,可以像这样迭代它们:

   function error(error) 
     {
         var output = [];
         for(key in error)
         {
             output[output.length] = key.toString() + " = " + error[key];
         }
         alert(output.join('\n'));
     }