首页 新闻 赞助 找找看

关于AjaxPro小技的求教

0
悬赏园豆:100 [已解决问题] 解决于 2013-06-02 16:22

尊敬的先生:
我用了您关于AjaxPro文章的做法,编辑了一点小程序,但编译和运行都未显示错误,可是的回馈函数是却看不到输出结果,又不能调试,想请您给看一下,问题出在哪里?
先谢了!
  1.  这是Form_Load中的类型声明语句。
        AjaxPro.Utility.RegisterTypeForAjax(typeof(TestProject_BusinessArchives_TreeLeft)); 
  2.  这是后台的Ajaxpro函数:
    public string GetNodeClassByNodeId(int nodeId)
    {
        businessArchives.Load(nodeId);
        return businessArchives.NodeClass;
    }
   3.这Script中的回调函数:
            function getNodeClass_callback(response) {
                 var dt = response.value;
                 alert(dt);
            }
   4. 这是Script中的调用AjaxPro语句:
                 TestProject_BusinessArchives_TreeLeft.GetNodeClassByNodeId(ind, getNodeClass_callback);

    我在后台中可以看到客户端传来的参数是正确的。而且后台的函数确信可以执行并返回正确的结果。可为什么在客户端的输出函数总显示为null?

问题补充:

我自己现在发现4.处的调用函数中的实参ind 的类型是 string,但后台被调用函数的该参数却声明为int,不知是不是这个问题,我明天再查下。谢谢您!

今天一上班,就把那个方法的形参和实参类型调整了,可结果仍然为NULL。

个人体户编程,遇到一个问题就把人卡住了,一点办法也没有。

黄叶梧桐的主页 黄叶梧桐 | 初学一级 | 园豆:116
提问于:2013-05-31 16:18
< >
分享
最佳答案
0

一般都是注册和回调的问题,一个是你注册的名称和你在js中调用的名称要一致

收获园豆:100
amityat | 菜鸟二级 |园豆:476 | 2013-05-31 16:41

注意:需要加上[Ajax.AjaxMethod]标识,这样才能够被客户端访问

amityat | 园豆:476 (菜鸟二级) | 2013-05-31 16:54

@amityat: 谢谢!您讲的那个标志我的后台Ajaxpro函数前是有的。

黄叶梧桐 | 园豆:116 (初学一级) | 2013-06-01 20:19

@黄叶梧桐: 你有没有邮箱,我给一个demo你吧!

amityat | 园豆:476 (菜鸟二级) | 2013-06-03 08:25

@黄叶梧桐: demo估计网上有好多,已经写好了一个,通过写这个demo我猜测故障原因,

1,需要注意AjaxPro.net版本,我也搞不清Ajax2.dll,与Ajax.dll是什么区别.你百度下,呵呵,我直接用的是Ajax2.dll

  我刚才测试的是: http://ajaxpro.codeplex.com/releases/view/23363

  web.config配置:

    <httpHandlers>
      <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2, Version=9.2.17.1, Culture=neutral, PublicKeyToken=4735ae9824c7d3ec"/>
    </httpHandlers>

 

2,对于调试的时候,调用服务器端的方法注意大小写

3,调用的时候调试,用firefox firebut调试,查找js文件,看看其中你调用的方法有没有注册成功

amityat | 园豆:476 (菜鸟二级) | 2013-06-03 09:23
其他回答(2)
0

businessArchives是后台控件吧?

就算是AjaxPro,虽然到了后台,但是它是不能操纵后台控件的,也不能获取后台控件的数据

TiestoRay | 园豆:687 (小虾三级) | 2013-05-31 16:52

您好!谢谢。

那个businessArchives是后台定义的一个类型。不是后台控件,我的控件都在前台定义的。

支持(0) 反对(0) 黄叶梧桐 | 园豆:116 (初学一级) | 2013-06-01 20:16
0

这个问题向前走了一步,原来是后台的Ajax函数出了问题,这个函数在被c#正常处理时能返回正常的值,但当标记为【Ajaxpro.AjaxMothod】后,不知道什么原因,这个函数根本就没有运行,而是直接返回一个“Null”,并把这个NULL返回到前台回调函数。即在前台总得到一个“NULL”,但问题是,这类Ajaxpro.AjaxMothod方法,难道不能使用后台定义的类及方法吗?又是一个巨大的障碍。

黄叶梧桐 | 园豆:116 (初学一级) | 2013-06-02 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册