• AjaxHandler


    概要

      AjaxHandler组件是在ASP.NET MVC Web应用程序中实现ajax功能的一系列扩展方法,该组件的最初的实现方法借鉴了网上流行的部分源代码, ,经过博主不断完善和改进后推出的比较成熟而且功能强大的ASP.NET MVC AJAX解决方案。

    依赖

          需要引用jquery1.7 以上版本

    AjaxHandler功能

      1.主要实现前后端ajax调用

           2.主要实现后台action自动生成ajax扩展函数

           3.支持最新的ASP.NET MVC 5.0 或更高版本

           4.支持IE、Firefox、Opera、Chrome及Safari等常用浏览器

    模版 

      述语:模版主要是只嵌入到AjaxHandler.dll中的net.js  该模版使用的嵌入资源

      模版代码:

    (function ($) {
        if (!$.net) {
            var defaultOptions = {
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                type: "POST"
            };
    
            $.extend({ net: {} });
    
            $.extend($.net, {
                CallWebMethod: function (options, method, args, obj) {
                    var parameters = $.extend({}, defaultOptions);
                    var url0 = options.url + "/$CLS$" + "/" + method;
                    if (args != null) {
                        var jsonStr = JSON.stringify(args);
                        $.extend(parameters, options, { url: url0, data: jsonStr }, obj);
                    } else {
                        $.extend(parameters, options, { url: url0 }, obj);
                    }
                    $.ajax(parameters);
                }
            });
        }
        var services = new $CLS$();
        $.extend($.net, { $CLS$: services });
    })(jQuery);
    
    function $CLS$() {
        this.Options = { url: "$URL$" };
    }

      后台action的会根据此模版生成相应的ajax扩展函数

    后端端使用

      

       public class HomeController : WebAjax
        {
            /// <summary>
            /// 视图
            /// </summary>
            /// <returns>view</returns>
            public ActionResult Index()
            {
                return View();
            }
    
            /// <summary>
            /// 有参Ationc
            /// </summary>
            /// <param name="paramters">paramters</param>
            /// <returns>json</returns>
            [JsAction]
            public ActionResult GetParameters(Paramters paramters)
            {
                return Json(new { ok = "ok" });
            }
    
            /// <summary>
            /// 无参Action
            /// </summary>
            /// <returns>json</returns>
            [JsAction]
            public ActionResult NoParameters()
            {
                return Json(new { ok = "ok" });
            }
        }

      1.后端需要继承WebAjax组件父类

      2.需要生成的扩展函数需要标记特性JsAction

    前端使用

      1.引用jquery

      

    <script src="~/Conetnt/js/jquery-1.7.2.min.js"></script>

      2.引用组件模版

    <script src="~/Home/GetJavascript"></script>

      引用模版需要注意 模版引用顺序需要在jquery之后

           Home 当前视图控制器的名称

      GetJavascript 模版定义名称 (不可变)

      3.js调用

      对应的每一个标记了JsAction特性的Acion都会生成一个ajax的扩展函数(组件自动生成)

      

    Home.prototype.GetParameters = function(paramters,obj){
        var args = {paramters:paramters};
        var options={dataType:'json'};
        $.extend(true,options,{},this.Options);
        $.net.CallWebMethod(options,'GetParameters',args, obj);
    }    

       paramters 对应的参数 json对象

     obj 对应ajax回调函数

       4.客户js调用

     

            // 有参数测试
            var paramters = { "Id": 1 };
            $.net.Home.GetParameters(paramters, {
                success: function (d) {
                    alert("xx");
                }
            });
    
            // 无参数测试
            $.net.Home.NoParameters({
                success: function (d) {
                    alert("ggg");
                }
            });

      如果有参数则注意参数名称需要和后台参数名称一致

      obj参数则参考jquery api参数

      注意如果有参数 参数只能有一个且该参数只能是一个实体对象(class)   

     组件下载地址:https://files.cnblogs.com/files/liuxiaoji/AjaxHandler.rar

        aspx版本: http://www.cnblogs.com/liuxiaoji/p/4414404.html

      

  • 相关阅读:
    python深浅拷贝
    软件开发目录规范
    编码规范
    python进程、线程、协程的介绍及使用
    soket粘包问题及解决方案
    python socket通信
    数据开发_机器学习
    数据开发_开发工具以及工具链
    数据开发_Python读取文件
    数据开发_Java设计模式_IO以及读取资源文件
  • 原文地址:https://www.cnblogs.com/liuxiaoji/p/9233182.html
Copyright © 2020-2023  润新知