您的位置:首页 > Web前端 > HTML

使用Ajax.dll实现ajax功能时出现'某某'未定义的解决方案

2011-03-15 23:24 513 查看
今天使用ajax.dll的时候遇到 'AjaxManager' 未定义的错误。

看了看配置、代码没什么问题呀,也在网上翻了不少帖子,问题没解决。

最后把js代码放到body下面居然解决了。

代码如下

 

web.config

 

.......

<system.web>
    <httpHandlers>
      <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
    </httpHandlers>

......

 

 

AjaxManager类, 在App_Code文件夹内

 

using Ajax;
using BLL;

public class AjaxManager
{

    [AjaxMethod]
    public string GetStr(string a, string b)
    {
        return Class1.GetStr(a, b);//返回a+b
    }
}

 

 

 

页面类

 

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

    }
}

 

 

 

aspx页面

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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 GetStr() {
            var a = 2;
            var b = 5;
            AjaxManager.GetStr(a, b, GetGetStr_CallBack);
        }
       
        function GetGetStr_CallBack(response) {
            alert(response.value);
        }     
       
        GetStr(); 
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html>

 

//End

 

怎么修改,调试都报错。

后来想起一些js的经验,就把js脚本放到form后面去了,问题就解决了。

 

但是为什么会这样没弄明白,看以前上学时写的代码明明就是放在head之间的呀(后来基本都用mvc了)。

这问题留待以后研究吧。呵呵。

 

另外,看网上有资料说,iis7中还要配置

  <system.webServer>
    <httpHandlers>
      <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
    </httpHandlers>
   
  </system.webServer>

 

 

 

 

 

 欢迎大家有时间到我的小站去看看

www.joyoustore.com

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息