AjaxPro,郁闷,以前能用,现在不能用了。大家分析一下什么原因

lovcal 2006-12-07 10:58:16
VS2005.net 中使用Ajax框架的方法:

<1>在web.Config的System.web下添加
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
<2>添加引用AjaxPro.2.dll
<3>using AjaxPro,添加命名空间,并注册AjaxPro.Utility.RegisterTypeForAjax(typeof(www));然后体添加Ajax方法[AjaxPro.AjaxMethod]

举例-----------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using AjaxPro;
namespace Ajax
{
public partial class www : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(www));
}

[AjaxPro.AjaxMethod]
public int getSum(int a, int b)
{
return a + b;
}
[AjaxPro.AjaxMethod]
public DateTime funcTime()
{
return DateTime.Today;
}
}
}
-------------------------------------------
<4>客户端调用服务器端Ajax方法:
A.首先添加命名空间(原来没有)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Ajax.www" %>
B.在javascript中调用,举例如下:
function test()
{
var s = Ajax.www.funcTime().value;
alert(s);
}


非常郁闷的是,我前一个项目上用好好的,现在的项目将原来的页面直接Copy过来都不能用,换了台同事的机器也是一样,怀疑自己忘记了些什么……怎么回事呢
...全文
548 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovcal 2006-12-08
  • 打赏
  • 举报
回复
很是郁闷,找不到真正原因,环境到底哪些不对头……哪些东西会影响AjaxPro的运行呢
xuyiazl 2006-12-08
  • 打赏
  • 举报
回复
命名空间 和 环境问题``
自己看看你调用的命名空间是否正确`~
ustbwuyi 2006-12-08
  • 打赏
  • 举报
回复
好了就好,应该是你环境的问题
vagerent 2006-12-08
  • 打赏
  • 举报
回复
首先把globle中的AjaxPro.Utility.HandlerPath = "Ajax";去掉;
然后新建网站,调到ajax.net可用,然后把原来的网站一项项拷贝过去,逐个排除;
应该就可以用了,貌似是你考原来网站造成的。
lovcal 2006-12-08
  • 打赏
  • 举报
回复
现在例子可以了,不知为啥

但是在原项目中添加一个页面,用同样的代码,怎么折腾就是不行
lovcal 2006-12-08
  • 打赏
  • 举报
回复
楼上的,我这就是AjaxPro.2.dll,所以不用了
稍微有点无敌 2006-12-08
  • 打赏
  • 举报
回复
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>

改成
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>

试试
孙思邈 2006-12-08
  • 打赏
  • 举报
回复
新建了一个网站,照抄了代码,调试没有任何问题,运行正常!
还是重新开一个环境吧!
ustbwuyi 2006-12-08
  • 打赏
  • 举报
回复
不会吧,我调用ajax只添加了ajax.dll,然后webconfig定义了一下
<httpHandlers><add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>
再没配置什么,或许和你的环境有关,你可以新建一个网站试一下,上次给另外一哥们解决也是,实在没什么地方有错,后来他自己新建了一个项目一试就好了
lovcal 2006-12-08
  • 打赏
  • 举报
回复
Default未定义,汗,还是一样的错误,是否是我的环境配置问题?
wlb854 2006-12-08
  • 打赏
  • 举报
回复
wlb854.cnblogs.com看看。。。
ustbwuyi 2006-12-08
  • 打赏
  • 举报
回复
这是我用ajax来验证用户名是否存在的一个例子,前台直接调用的if(Default.IsExist(User))
直接调用ajax.dll来做的,global并没有设置
ustbwuyi 2006-12-08
  • 打赏
  • 举报
回复
测试完整:
在Default.aspx文件下
后台cs文件:
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Default));
}
[AjaxPro.AjaxMethod]
public bool IsExist(string username) //判断是否存在该用户,返回bool型
{
return MessageContext.Cuurent.IsExist(username);
}

前台js:
function UserAdd()
{
var User=document.getElementById("user").value;
if(User=="")
{
alert("请输入联系人的用户名!");
return false;
}
if(Default.IsExist(User))
{
alert("该联系人已经存在!");
return false;
}
try
{
Default.UserAdd(User);
document.getElementById("user").value="";
document.getElementById("context").innerHTML="添加成功!";
document.getElementById("context").style.color="#DD68ee";
return false;
}
catch(e)
{
document.getElementById("context").innerHTML="添加失败!";
document.getElementById("context").style.color="#Dd68ee";
}
}
lovcal 2006-12-08
  • 打赏
  • 举报
回复
谢谢ustbwuyi() :关键是我搞了好几遍了,有人能测试一下,可行的例子么?小弟谢谢了!
ustbwuyi 2006-12-08
  • 打赏
  • 举报
回复
还有,你页面的名字最好不要用Ajax,这样也许会起冲突
你就用default.aspx就可以
ustbwuyi 2006-12-08
  • 打赏
  • 举报
回复
var s = Ajax.funcTime().value;
就用 var s = Ajax.funcTime();可以了吧?
只是调用这个方法而已,这个方法并没有value属性

lovcal 2006-12-08
  • 打赏
  • 举报
回复
haolaiwu(宁愿相信世界上有鬼,也不相信女人那张嘴) ( ):
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
这里是不是有问题啊“??AjaxPro.2应该是程序集名称


==========不是这样么?其实这个页面我以前项目中已经用过了,只是搞不明白现在怎么就不行。基本上一直提示不认识Ajax这个类


lovcal 2006-12-08
  • 打赏
  • 举报
回复
我新建了一个测试环境,没进入调试是因为我的浏览器设置问题,请看看

客户端:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax.aspx.cs" Inherits="Ajax" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >


<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
function test()
{
var s = Ajax.funcTime().value;
alert(s);
}
function Button1_onclick()
{
test();
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /></div>
</form>
</body>
</html>
====================cs文件===================
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using AjaxPro;


public partial class Ajax : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Ajax));
}

[AjaxPro.AjaxMethod]
public int getSum(int a, int b)
{
return a + b;
}
[AjaxPro.AjaxMethod]
public DateTime funcTime()
{
return DateTime.Today;
}
}
===global文件=============
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
AjaxPro.Utility.HandlerPath = "Ajax";
}

====web.config文件=======================
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
ustbwuyi 2006-12-08
  • 打赏
  • 举报
回复
你先按kason_j(伊松) ( 的方法试一试,不行的话你可以重新建一个页面看看,有时候确实是所有的地方配置都没问题,但是报这个错误,我也碰到过几次了,重新建一个页面或者项目有时候又能用了,我也不知道问题在哪,另外我觉得你这里貌似也不太对
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Ajax.www" %>

如果你的页面是Default.aspx,你ajax注册的应该也是这个页面,而不是www
稍微有点无敌 2006-12-08
  • 打赏
  • 举报
回复
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
这里是不是有问题啊“??AjaxPro.2应该是程序集名称
加载更多回复(9)

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧