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

  

转载于:https://www.cnblogs.com/liuxiaoji/p/9233182.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值