AjaxPro使用注意事项与返回数据库中数据时2.0和3.5/4.0的区别(我的心得)

一、使用Ajaxpro

在web.config中的<system.web>节点加上
  <httpHandlers >
   <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
  </httpHandlers>

在page_load中注册:

protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof(ExamCalendar.Index));
        }

定义后台方法:

[AjaxPro.AjaxMethod]
        public string Say()
        {
           return "你好吗?";

        }

在前端使用:卸载javascript中:

 ExamCalendar.Index.GetAllExam(Say);

其中ExamCalendar.Index是这么来的:

AjaxPro使用注意事项与返回数据库中数据时2.0和3.5/4.0的区别(我的心得)_第1张图片

调用的一个函数: 

function GetAllExam(res) {
             alert(res.value);

}

在页面上写一个按钮触发这一句话即可:

 ExamCalendar.Index.GetAllExam(Say);

 注意了:

我测试了好长时间才试出来的.

不能直接使用alert(ExamCalendar.Index.GetAllExam(Say).value);(大家别听网上有一部分人这么建议使用,页面数据取出来了,但是在ie上测试时,数据时出来了,但是过十几秒就会出现如下问题)

AjaxPro使用注意事项与返回数据库中数据时2.0和3.5/4.0的区别(我的心得)_第2张图片

所以初学者要按照我之前写的方法去做,才不会出现这种情况!

二、在后台连接数据库之后想将数据库中的数据作为一个json型返回,然后在前台反序列化,显示出来。

可是在.net2.0中就出问题了。

解决方案如下:

在3.5、4.0中管用的:

T_ExamCalendarTableAdapter adapter = new T_ExamCalendarTableAdapter();
            var exam = adapter.GetAllData();
            List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
            foreach (var row in exam)
            {
                var Dic = new Dictionary<string, string> {
                {"ExamSubject",row.ExamSubject},
                {"LanguageClass",row.LanguageClass},
                {"ExamTime",row.ExamTime},
                {"ExamAccurateTime",row.ExamAccurateTime},
                {"RelatedData",row.RelatedData},
                {"RelatedDataUrl",row.RelatedDataUrl},
                {"RelatedCourse",row.RelatedCourse},
                {"RelatedCourseUrl",row.RelatedCourseUrl},
                {"Remarks",row.Remarks}
                };
                list.Add(Dic);
            }
            JavaScriptSerializer jss = new JavaScriptSerializer();
            return jss.Serialize(list);

1、在2.0中应该将  foreach (var row in exam)改成:

 foreach (test.DAL.DataSet.T_ExamCalendarRow row in exam)

2、到网上下载:System.Web.Extensions.dll文件,将其引进来即可使用JavaScriptSerializer了。

你可能感兴趣的:(Ajax)