解决方案 »

  1.   

    创建一个Page页面对象干什么?你应该访问ashx,而不是aspx。
      

  2.   

    你前端引入这个类的命名空间看看
    <%@ Import namespace="value" %>
      

  3.   

    我的代码是这样子的:
    前台:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            function show2() {            //_Default.gets()这是后台的方法            var mes = Default2.gets();            alert(mes.value);        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            
         <input type="button" value="click" onclick="show2();" />
      
         </div>
        </form>
    </body>
    </html>后台:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {        //_Default是这里的大类名,网页是Default.aspx在        //它的cs文件里的类是_Default
            
            Ajax.Utility.RegisterTypeForAjax(typeof(Default2));    }    [Ajax.AjaxMethod]    public string gets()
        {        return "hello";    }
    }
    Web.config:
    <?xml version="1.0"?>
    <!--
      有关如何配置 ASP.NET 应用程序的详细信息,请访问
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
        </httpHandlers>
        <compilation debug="false" targetFramework="4.0">
        </compilation>
      </system.web>
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
      </system.webServer>
    </configuration>最后的问题就是:前台的这句 var mes = Default2.gets();
    说Default2 未定义。
      

  4.   

    【var mes = Default2.gets();】放到form或body中试试,我有一次也遇到这个问题
     
      

  5.   

    将调用脚本移动form里面也不行码
      

  6.   

    要不用Ajaxpro.dll试试,放到form中,form设置runat=server
      

  7.   

    http://www.cnblogs.com/zhangronghua/archive/2008/01/22/1049108.html,看看这个帖子
      

  8.   

    Ajaxpro 这个我也试过了,结果还是同样的错误!
      

  9.   

    我记得,当时就是把脚本放到from runat=server,里面后问题就解决了,不知道你哪儿为什么老是不行,奇怪
      

  10.   

    我知道为什么了,是IIS版本的问题。6.0以前的是这样子没错,但是6.0之后的就不能这么配置的。