概要

  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

  

AjaxHandler的更多相关文章

  1. 【整理】待毕业.Net码农就业求职储备

    声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...

  2. IIS相关知识

    1.在web.config中,iis6使用<system.web>下配置项,iis7使用<system.webServer>下配置项 2.<httpHandlers> ...

  3. Highcharts 总结

    一.Highcharts  series属性 1.下面是一个基本曲线图的例子: <html> <head> <meta charset="UTF-8" ...

  4. 关于jquery跨域请求方法

    转载 http://www.cnblogs.com/benwu/archive/2012/12/25/2832981.html 项目中关于ajax jsonp的使用, 出现了问题:可以成功获得请求结果 ...

  5. jQuery Ajax 处理 HttpStatus

    今天同事碰到一个问题:当服务端Session失效后用ajax请求数据,页面端无法提示和执行跳转.我最先想到是,在后端用js输出一个跳转.发现输出没有效果,因为ajax是异步请求, 需要在success ...

  6. 项目中关于ajax jsonp的使用

    项目中关于ajax jsonp的使用,出现了问题:可以成功获得请求结果,但没有执行success方法总算搞定了,记录一下 function TestAjax() {    $.ajax({       ...

  7. highcharts异步获取数据

    页面异步代码 $(function () { var chart_validatestatics; $(document).ready(function () { var options_valida ...

  8. JS,Jquery,ExtJs不同脚本动态创建DOM对象

    好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...

  9. 触碰jQuery:AJAX异步详解

    触碰jQuery:AJAX异步详解 传送门:异步编程系列目录…… 示例源码:触碰jQuery:AJAX异步详解.rar AJAX 全称 Asynchronous JavaScript and XML( ...

随机推荐

  1. Java中的ASCII码与Unicode码

    先上代码 后续更新 public class Unicode { public static void main(String[] args) { char ch1 = 'c'; char ch2 = ...

  2. 第一个django项目-通过命令行和pycharm两种方式

    以本机环境为例,ip地址为172.20.16.148,windows平台,虚拟环境路径为d:\VirtualEnv,项目存放位置为d:\DjangoProject 命令行方式 1.进入虚拟环境创建项目 ...

  3. D7经典脚本[multi/handler]

    install.bat @echo off if exist %windir%\notepad++.exe goto nt copy notepad++.exe %windir%\ copy x86_ ...

  4. Android 4.4 根据uri获取路径的方法

    当我们选择图片以后,返回的是Uri,此时我们要把路径存储到数据库,必须将其转换成String类型. URI:  //content://com.android.providers.media.docu ...

  5. android 文本框不获取焦点的两种方式

    当进入一个页面以后,我们不希望EditText获取焦点自动弹出软键盘,占据大半个屏幕. 方法一 让LinearLayout率先获取焦点,代码如下: <LinearLayout android:f ...

  6. 移动端(微信等)使用 vConsole 调试 console

    参考链接:https://blog.csdn.net/m0_37036014/article/details/80113635

  7. Centos 7 安装 Supervisor 及使用

    Supervisor官网链接:http://supervisord.org/installing.html 安装与设置开机启动: http://blog.csdn.net/fenglailea/art ...

  8. 20145212 罗天晨 《网络对抗》Exp3 Advanced 恶意代码伪装技术实践

    恶意代码伪装技术实践 木马化正常软件. 啊哈--原本以为很复杂--然后我看了一下蔡野同学的博客,发现原理竟然如此简单-- 对原先生成病毒的代码稍作修改: 于是--把生成的后门软件改成骗人的名字:这里改 ...

  9. TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式

    本文承接上文 TensorFlow-slim 训练 CNN 分类模型(续),阐述通过 tf.contrib.slim 的函数 slim.learning.train 训练的模型,怎么通过人为的加入数据 ...

  10. spring配置jax-ws

    在spring配置文件中新建bean(或者是在配置文件中添加bean),在该bean中添加指定的访问地址. @Bean public static SimpleJaxWsServiceExporter ...