开发者社区> zting科技> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法

简介:
+关注继续查看

  我们都知道在AjaxPro的方法AjaxPro.Utility.RegisterTypeForAjax(typeof(所在类的类名));会将标记有[Ajax.AjaxMethod]方法注册在客户端。在某项目中,设计模板字段引擎,采用html+jquery实现,这里的数据就难免需要ajax获取,但是团队对于js掌握不一,所以我写了下面辅助类,可以像ajaxpro一样简化ajax的开发。

代码-jQueryInvokeMethodAttribute (此处只做标示方法处理,所以为空):

[AttributeUsage(AttributeTargets.Method, AllowMultiple=false,Inherited=false)] 
    public class jQueryInvokeMethodAttribute : Attribute 
    { 
    }

代码-jQueryAjaxUtility(分注册脚本和调用ajax事件):

View Code

为了考虑反射的性能,加入了类级注册脚本方法缓存处理jQueryUtilityCache,具体见demo。

测试:

html:

<form id="form1" runat="server"> 
    <div> 
        <input id="Button1" type="button" value="button" /> 
    </div> 
    </form>

后台方法注册Page_Load

Green.Utility.jQueryAjaxUtility.RegisterClientAjaxScript(typeof(_Default));

1:

前台:

复制代码
_Default.Test("ajax", 
                             { 
                                 success: function(e) { 
                                     alert(e); 
                                 }, 
                                 dataType: "text" 
                             });
复制代码

后台:

[Green.Utility.jQueryInvokeMethod()] 
   public static string Test(string str) 
   { 
       return "hello:" + str; 
   } 

效果:

image

2:

前台ajax:

复制代码
_Default.TestArrayJson(1, 2, 3, 
              { 
                  success: function(e) {                                  
                      $.each(e, function(i, n) { alert(n); }); 
                  }, 
                  dataType: "json" 
              }) 
复制代码

后台:

复制代码
[Green.Utility.jQueryInvokeMethod()] 
public static int[] TestArrayJson(int p1, int p2, int p3) 

    return new int[] { p1, p2, p3 }; 
}
 
复制代码

效果:

image 

3:

前台ajax:

复制代码
_Default.TestArrayxml("key", "value", 
            { 
                success: function(e) { 
                    alert(e.key); 
                    alert(e.Value); 
                }, 
                dataType: "json" 
            })
复制代码

后台:

[Green.Utility.jQueryInvokeMethod()] 
    public static Test TestArrayxml(string key,string value) 
    { 
        return new Test() { key=key,Value=value}; 
    }

效果:

image

最后看看FireBug中ajax http头信息:

image

 

其他资料jQuery目录:  我jQuery系列之目录汇总

附录:代码下载



本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2011/09/26/2192253.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
BAT华为等一线大厂Java工程师必读书单(二)
BAT华为等一线大厂Java工程师必读书单(二)
54 0
word2vec原理(二) 基于Hierarchical Softmax的模型
在word2vec原理(一) CBOW与Skip-Gram模型基础中,我们讲到了使用神经网络的方法来得到词向量语言模型的原理和一些问题,现在我们开始关注word2vec的语言模型如何改进传统的神经网络的方法。
2186 0
Saiku_学习_02_Schema Workbench 开发mdx和模式文件
一、前言 saiku的查询都是通过cube来进行的。因此每当我们要进行一次多维度查询时,都要先修改xml、上传、重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件。 通过 workbench  图形界面工具,可以自动生成 Schema 文件   二、下载 下载地址:https://sourceforge.net/projects/mondrian/files/schema%20workbench/ 选择最新版下载解压即可。
1805 0
这书真的不错--Spring MVC Beginner&#39;s Guide
五百多页,我干到三百多页了。 每个知识点都有说明,操作,解释。 学SPRING MVC,有它就够了。 遗憾的是,这个PDF的文档格式太稀松啦,且,无中文版~~~ 我都想作汉化翻译工作了。。。算了,忍住,先往前走走~~~~~~~
978 0
[cocos2dx]COCOS2D-X 关于 fatal error C1083: 无法打开包括文件:“CCStdC.h” 的问题
在新建COCOS2D-X项目时 关于 fatal error C1083: 无法打开包括文件:“CCStdC.h” 的问题 fatal error C1083: 无法打开包括文件:“CCStdC.
1243 0
websphere6.1部署SystemErr.log必须为元素类型“web-app”声明属性“ve
解决方案 方法1.将你的war包里的web.xml文件用记事本打开,删掉第一行 总之,只能以
823 0
+关注
3549
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载