ASP.NET WebForm也可以这样用Ajax
作者:网络转载 发布时间:[ 2013/4/2 9:53:36 ] 推荐标签:
6、主要基类:AjaxBasePage类
如下代码:
public class AjaxBasePage : System.Web.UI.Page
{
/// <summary>
/// 是否是一个ajax请求。
/// </summary>
public bool IsAjaxRequest { get; private set; }
/// <summary>
/// 如果是Ajax请求,劫持页面生命周期的PreInit的事件,直接返回Response
/// </summary>
protected override void OnPreInit(EventArgs e)
{
AjaxRequest ajaxRequest = AjaxRequest.GetInstance(Request.Form);
this.IsAjaxRequest = ajaxRequest.IsAjaxRequest;
if (this.IsAjaxRequest)
{
AjaxApplication ajaxApplication = new AjaxApplication(this, ajaxRequest);
ajaxApplication.EndRequest();
}
else
{
// 如果不是Ajax请求,继续执行页面生命周期的剩余事件
base.OnPreInit(e);
}
}
}
该类重写了PreInit方法,判断请求是否是一个Ajax请求。通过AjaxRequest类接收并处理接收到的请求,提取出一些有效的数据,比如说是否是一个Ajax请求,方法的名字,参数列表(AjaxParameter类)。
至于AjaxParameter类,内部用的数据结构其实是一个字典,并使用索引来提供对数据的方便访问,提供一个Count属性,方便获取参数的个数。
如下代码:
public class AjaxParameter
{
private IDictionary<int, string> m_DictionaryParamsData = new Dictionary<int, string>();
/// <summary>
/// 返回参数的个数。
/// </summary>
public int Count
{
get
{
return this.m_DictionaryParamsData.Count;
}
}
/// <summary>
/// 索引具体参数的值。
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public string this[int index]
{
get
{
if (index >= 5 || index < 0)
{
throw new NotSupportedException("请求方法的参数的个数限制为:0-5");
}
return this.m_DictionaryParamsData[index];
}
}
public AjaxParameter(IDictionary<int, string> paramsData)
{
this.m_DictionaryParamsData = paramsData;
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11