[转]在一个项目中使用到ajax.dll类库 web.config 配置如下:
<configuration>
    
  <system.web>
     <httpHandlers>
     <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
     </httpHandlers>
  <!--  动态调试编译
.....
Page_Load事件进行初始化 代码如下:private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(WebForm1));
}使用ajax实现的函数test() 代码如下:[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public string a(string str)
{
   return str;
}
然后在客户端使用javascript调用该方法:<script language="javascript">
function ok()
{
alert(WebForm1.test("hello!").value);
}
</script>
最后就是问题所在了:以上代码在本机上运行一切正常,但是将项目上传到虚拟主机后访问url出现javascript脚本错误提示:"WebForm1"未定义 为什么会出现这样的提示?难道上传到服务器后ajax.dll不起作用了么?
我想问的问题跟这个贴子一样,不知哪位朋友能够指点一二呢.

解决方案 »

  1.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="命名空间名.Default2" %>然后在cs文件设"命名空间名"
      

  2.   

    不行啊...
    本来文件已经这样设置的了,我在CSDN查了很多资料,还没看到有人解决这个问题....难道只能在本地运行,上传到服务器就不可以了.
      

  3.   

    可能是虚拟主机禁用了未知的web扩展(指ashx这种未知扩展)
      

  4.   

    WebForm1 这个要和你的页面类名一致。而且如果有命名空间也要加上
      

  5.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="名称空间.类名" Debug="true" %>
    ==========================
    javascript:
    function test()
    {
    try    
      {
        名称空间.类名.服务器端方法名(string1,start);
        
       }   
       catch  (e)   
       {
         alert("错误!!");
         return ;
      }  
     
    }
    }
    function start(res)
    {
    alert(res.value);
    }
      

  6.   

    lys1978900(天下無雙) 这样做也不行啊。其实很多人在小山的博客上都有这个问题的http://singlepine.cnblogs.com/articles/257954.html,虽然还没有解决,但是很谢谢这么多人的参与
      

  7.   

    可能出现的问题:
    (1)在 JavaScript 中调用的 Ajax 函数要放在 <form runat = "server"></form> 中,否则将提示 WebForm1 未定义做一下广告:www.xproer.com,嘿嘿,偶刚做的小站,里面有一个小论坛,欢迎大家随时来访。
      

  8.   

    function getServerTime()
    {
        alert(MyDemo.WebForm1.GetServerTime().value);
    }注意:调用 getServerTime() 的调用模块要放在 <form runat="server"></form>中间,否则会出现"MyDemo(命名空间)未定义"错误
      

  9.   

    songsu(松鼠)  我放在<form runat = "server"></form>中间试过了,感觉是一样的效果啊
      

  10.   

    @venric() 我以前也是遇到过这样的问题,也是搞了好久,后来加上命名空间就好了。不过现在MS出了自己的AJAX(atlas) 使用起来很简单的,你可以试试
      

  11.   

    把本地的aspnet_client文件传到服务器上试试
      

  12.   

    C5662601 上传了.还是不行..... 听l6098627(似水流年) 的,也去学一下atlas才行,学到够用就好了.呵呵
      

  13.   

    我也碰到过同样的问题,也没有解决,你试试把服务器上的IE 工具->internet选项->安全->自定义级别->通过域访问数据资源,启用能不能行.
    本地没有域的.