AjaxPro应用二三事
ajaxpro是谷歌推出的一个.net开源AJAX类库(框架?),让我们能更简单的实现ajax那套玩意。我们的项目中用到了它,这里记录一点应用方面细节:
一、使用之前先注册
不是注册网站用户名!!!在需要使用它的类中,一般是Page_Load() 方法使用:
AjaxPro.Utility.RegisterTypeForAjax(typeof(PageClass));进行注册。
使用这个方法会自动在运行时向页面注册以下3段js引用:
<script type="text/javascript" src="/Source/ajaxpro/core.ashx"></script>
<script type="text/javascript">AjaxPro.token = "";</script>
<script type="text/javascript" src="/Source/ajaxpro/PageClass,App_Web_naxbcj6y.ashx"></script>
可以看到最后一个引用中出现了我们在Page_Load方法中注册的类名和一个随机的ashx,这就是它真正实现ajax的地方。<script type="text/javascript">AjaxPro.token = "";</script>
<script type="text/javascript" src="/Source/ajaxpro/PageClass,App_Web_naxbcj6y.ashx"></script>
二、AjaxMethod必须声明为public
这个我一开始没注意,我的习惯是在页面类中自定义的方法均声明为private,若是这个方法在page中需要调用则声明为protected。
但是像上面这样做过以后,AjaxMethod怎么也访问不到 。找了段别人的代码一比较,发现原来是访问级别的问题。声明为public后即可正常使用了。
三、关于session的调用
ajaxpro调用后台方法时,若在方法中有使用到session对象,则必须要为AjaxMethod的声明增加特性:
[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
public string GetXX()
{//....}