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
AjaxHandler的更多相关文章
- 【整理】待毕业.Net码农就业求职储备
声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...
- IIS相关知识
1.在web.config中,iis6使用<system.web>下配置项,iis7使用<system.webServer>下配置项 2.<httpHandlers> ...
- Highcharts 总结
一.Highcharts series属性 1.下面是一个基本曲线图的例子: <html> <head> <meta charset="UTF-8" ...
- 关于jquery跨域请求方法
转载 http://www.cnblogs.com/benwu/archive/2012/12/25/2832981.html 项目中关于ajax jsonp的使用, 出现了问题:可以成功获得请求结果 ...
- jQuery Ajax 处理 HttpStatus
今天同事碰到一个问题:当服务端Session失效后用ajax请求数据,页面端无法提示和执行跳转.我最先想到是,在后端用js输出一个跳转.发现输出没有效果,因为ajax是异步请求, 需要在success ...
- 项目中关于ajax jsonp的使用
项目中关于ajax jsonp的使用,出现了问题:可以成功获得请求结果,但没有执行success方法总算搞定了,记录一下 function TestAjax() { $.ajax({ ...
- highcharts异步获取数据
页面异步代码 $(function () { var chart_validatestatics; $(document).ready(function () { var options_valida ...
- JS,Jquery,ExtJs不同脚本动态创建DOM对象
好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...
- 触碰jQuery:AJAX异步详解
触碰jQuery:AJAX异步详解 传送门:异步编程系列目录…… 示例源码:触碰jQuery:AJAX异步详解.rar AJAX 全称 Asynchronous JavaScript and XML( ...
随机推荐
- Java用Gson按照键值key排序json所有节点
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifa ...
- dropout——gluon
https://blog.csdn.net/lizzy05/article/details/80162060 from mxnet import nd def dropout(X, drop_prob ...
- kivy 小demo
from kivy.lang.builder import Builder from kivy.uix.boxlayout import BoxLayout from kivy.app import ...
- pxc 集群节点被kill -9 了拿什么拯救?
集群关机或者异常宕机,重启后想要以IST的方式加入集群,需要考虑集群中是否存在满足的节点,该节点的gcache还存放着停机期间所产生的事物. 重新初始化节点加入集群应该是最后的救命稻草. 这里模拟某个 ...
- python的os模块中的os.walk()函数
os.walk('path')函数对于每个目录返回一个三元组,(dirpath, dirnames, filenames), 第一个是路径,第二个是路径下面的目录,第三个是路径下面的文件 如果加参数t ...
- win7改装 CentOS7,装完后开机,没有引导
本来系统是win7,安装centos是用U盘启动安装方式安装成功后,发现win7的系统引导不见了.之前用的是centos6.4安装后依然保留win7引导的,到centos7就不行了 解决方法1.使用r ...
- Node.js实践
在 iOS 模拟器中调试 Web 页面 safari调试iOS App web 1, npm init 2, npm install ejs --save 简单Node 指令 $ node -v / ...
- centos7之安装wordpress
wordpress安装教程如下: mysql安装可以参考我的博客园Centos构建Java环境:https://www.cnblogs.com/youcong/p/9118753.html 1.安装a ...
- css的再深入4(更新中···)
两种居中的方式: Margin:0 auto;和text-align:center; Margin的居中是对自身,text-align对元素内部的文本来说. 隐藏的两种方式: visibility:h ...
- imx6ul linux4.1.15 LED驱动配置及heartbeat源码分析【转】
本文转载自:https://blog.csdn.net/u010444107/article/details/78328807 1)查看内核配置wujun@wj-vBox:~/freescale/li ...