• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    IIS7中Ajax.AjaxMethod无效的原因及解决方法
    最近做用Ajax.AjaxMethod方法的时候,在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,我就郁闷了,折腾了大半天,终于找到错误原因了。

    因为我发布网站用的是iis7,所以在web.config位置文件中system.webServer>handlers>>/handlers>system.webServer>里加入add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />标签。

    我的问题就是由于没有注意到iis版本问题,导致的。。。悲了个剧!

    现在将整个方法要注意的都写下来,也方便以后再看,希望的的遭遇能让碰到同样错误的人看到,省下一点宝贵的时间,毕竟生命诚可贵吗,少费点神,少掉几根毛,哈哈。。。

    直接在网上找篇全面的,别骂我抄袭。。。

    使用AjaxMethod要满足一下几点:
    1、如果还没有ajax.dll文件,就先下载一个来
    2、将ajax.dll添加到项目引用中:在VS的解决方案资源管理器中右键点击项目名称--“添加项目引用”--浏览,找到ajax.dll确定
    3、webCofig中httpHandlers>加上add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>节点
    如果是IIS7,则需要在system.webServer>/system.webServer>里加上add name="ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
    在CS程序中加上
    复制代码 代码如下:

    protected void Page_Load(objectsender,EventArgse)
    {
    Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//ClassName是这个CS文件的类名
    }

    编写CS方法,方法前加上[Ajax.AjaxMethod()],
    如果要使AjaxMethod里面能调用session,写成:[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)] ,
    如:
    复制代码 代码如下:

    [Ajax.AjaxMethod()]
    public string GetAddress(string UserID)
    {
    string Address="";
    //do somthing to get the address here
    return Address;
    }

    注意方法要写成public,否则在JS里调用的时候会提示“不支持此属性或方法”

    4、确保页面中有form runat="server">/form>标签。

    5、ASPX的JAVASCRIPT中调用时加上类名 ,如:
    var address = ClassName.GetAddress('123').value;
    您可能感兴趣的文章:
    • asp.net下ajax.ajaxMethod使用方法
    上一篇:ajax读取数据库内容实现二级联动下拉选择菜单示例
    下一篇:jquery ajax 向后台传递数组参数示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    IIS7中Ajax.AjaxMethod无效的原因及解决方法 IIS7,中,Ajax.AjaxMethod,无效,