zoukankan      html  css  js  c++  java
  • ASP.NET下AJAX.AJAXMETHOD使用方法,微软ajax 异步 同步的修改方法

    [ajax.AjaxMethod()]是微软开发的ajax库的ajax特性标签,指示方法由微软的ajax库来处理.使用AjaxMethod可以在客户端异步调用服务端方法,简单地说就是在JS里调用后台.cs文件里的方法,做一些JS无法做到的操作,如查询数据库

    使用AjaxMethod要满足一下几点:
    1。如果还没有ajax.dll文件,就先下载一个来
    2。将ajax.dll添加到项目引用中:在VS的解决方案资源管理器中右键点击项目名称--“添加项目引用”--浏览,找到ajax.dll确定
    3。webCofig中<httpHandlers>加上

    <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>节点

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


    如果是IIS7,则需要在

    <system.webServer></system.webServer>里加上

    <add name="ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
    4:在CS程序中加上
    protected void Page_Load(objectsender,EventArgse)
    {
    Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//ClassName是这个CS文件的类名
    }

    Ajax.Utility.RegisterTypeForAjax(typeof(BLL.Controller.AjaxController));


    3:编写CS方法,方法前加上[Ajax.AjaxMethod()],

    image
    如果要使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;

    <script language="javascript">
            function changeTeacherInfo(obj) {
                var returnValue = AjaxController.ChangeTeacherInfo(obj.value).value;
    注意:这样的写法实际调用ajax的时候是使用的  同步 模式

    如果我们想使用异步的方式,则把直接调用.value修改成一个回调函数来使用

    AjaxController.ExamScoreSubmit($.toJSON(subjects),call_back);

    这里的call_back 就是个回调函数,那么怎么在这个回调函数里面获取到值呢? 在返回值的函数里面,有个参数,我们用到的就是参数的value就可以了

    function call_back(re) {
                var Result = re.value;
               if (Result == "Success")
                {
                    CxcDialog('提示框', "保存成功", 'OK', window.location.href);
                }
                else
                {
                    alert(Result);
                } 
            }
  • 相关阅读:
    Scrum:The Definition of Done —— 作业有没有写完呢?
    中兴通讯 可视化devops 牛啊 屠亚奇
    qunar-dns
    通过业务系统的重构实践DDD
    通过业务系统的重构实践DDD
    一键部署Kubernetes高可用集群
    springboot系列
    Ubuntu · Docker —— 从入门到实践
    容器化操作系统概览
    基于 CentOS7 的 Kubernetes 集群
  • 原文地址:https://www.cnblogs.com/joeylee/p/3088487.html
Copyright © 2011-2022 走看看