• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

ajax客户端脚本

hdqqq 2007-05-30 01:11:43
我想用ajaxpro做一个异步查询,但是我在服务端的类是封装在自己的一个子命名空间的.也就是说有三层的命名空间,而服务端类在最里面,现在页面返回
的ashx很长

/ajaxpro/good_tracker.WebPage.WayBill_InputB,good_tracker.ashx

在写客户端脚本的时候,老是提示 WayBill_InputB不存在,我想知道ajax是不是不支持在命名空间中的类的封装,因为我看网上的例子都没有命名空间的.

如果支持命名空间的话,客户端脚本该如何写?

...全文
632 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hdqqq 2007-05-30
我该做的都做了,不过我用的是vb.net,而例子都是csharp的.
回复
babyrockxray 2007-05-30
就只要这几个步骤就可以:
1 web config加上
<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro"/>
</httpHandlers>
2 项目引用ajaxpro.dll
3 pageload里面写AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));


回复
hdqqq 2007-05-30
那注册一个ajax处理类,是不是还要在其他方面注册,而不仅仅是web.config和page_load这两个地方.
回复
babyrockxray 2007-05-30
对的 javascript根本没有生成,所以会出现这错误
还没有遇到过这问题
回复
hdqqq 2007-05-30
我用的是AjaxPro.dll,版本是7.4.24.1,昨天晚上在网上下的最新的版本.
回复
hdqqq 2007-05-30
我试了一下,出现了异常

“/good_tracker”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
AjaxPro.TypeJavaScriptProvider.GetClientMethodName(MethodInfo method) +19
AjaxPro.TypeJavaScriptProvider.RenderMethods(MethodInfo[] methods) +49
AjaxPro.TypeJavaScriptHandler.ProcessRequest(HttpContext context) +2782
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +179
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87


是不是这个问题,导致javascript根本没有生成?
回复
babyrockxray 2007-05-30
在ie上打开good_tracker/ajaxpro/good_tracker.WebPage.WayBill_InputB,good_tracker.ashx这个url,看看它的源码
回复
hdqqq 2007-05-30
加上namespace一样,还是说good_tracker未定义
回复
babyrockxray 2007-05-30
加上namespace调用
good_tracker.WebPage.WayBill_InputB.GetCity("shanghai",getdata);
回复
hdqqq 2007-05-30
关键是不知道ajaxpro.net把带命名空间的类,生成客户端的javascript代理的变量名称是什么.生成的ashx脚本太长了.
回复
hdqqq 2007-05-30
我在web.config中加了这个

<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro"/>
</httpHandlers>

page_load的时候加了类注册的语句
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AjaxPro.Utility.RegisterTypeForAjax(GetType(WayBill_InputB))

End Sub
注册的函数
<AjaxPro.AjaxMethod()> _
Public Function GetCity(ByVal help_code As String) As String
System.Diagnostics.Trace.WriteLine(help_code)
Dim ret As String
ret = "北京"
Return ret

End Function

这个页面的类是WayBill_InputB, namespace 为WebPage,工程是good_tracker

客户端的脚本是这样写的
function doTest()
{
WayBill_InputB.GetCity("shanghai",getdata);
}

function getdata(rv)
{
alert(rv.value);
}


function js_on_date_textbox_focus(id) {
var ctrl;
var date = new Date();
var date_str = date.getYear() + "-";
date_str += date.getMonth()+1 + "-"
date_str += date.getDate();

ctrl = document.all(id);
if (ctrl != null) {
ctrl.value = date_str;
ctrl.select();
}
doTest();
}

结果在客户端调用的时候,老是报告 WayBill_InputB 未定义
查看页面的源文件,有个javascript的src是

src="/good_tracker/ajaxpro/good_tracker.WebPage.WayBill_InputB,good_tracker.ashx"



回复
net_lhb 2007-05-30
up
回复
babyrockxray 2007-05-30
而且最好贴点关键代码上来
回复
linsoo 2007-05-30
同楼上问
回复
babyrockxray 2007-05-30
这个url没有问题,
ajaxpro可以用namespace
你具体错误是什么
回复
hdqqq 2007-05-30
有谁用国ajaxpro.net,恳请指点,我分有的是,不够再加.
回复
hdqqq 2007-05-30
我是按照网上说的,修改了web.config和在page_load的时候进行了注册.

但是web页上返回的script的src就是这样的.

回复
qileroro 2007-05-30
/ajaxpro/good_tracker.WebPage.WayBill_InputB,good_tracker.ashx
-------------------
这不是一个正确的URL,因为逗号是特殊字符,JS里面的使用encodeURI()或encodeURIComponent() 方法处理的
回复
hdqqq 2007-05-30
问题解决了,是ajaxpro版本的问题,7.4的是beta,有问题,我下了个6.10的就好了.
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2007-05-30 01:11
社区公告
暂无公告