分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

AjaxHandler

发布时间:2023-09-06 02:01责任编辑:彭小芳关键词:Ajax

概要

  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

  

AjaxHandler

原文地址:https://www.cnblogs.com/liuxiaoji/p/9233182.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved