ASP.NET WebForm也可以这样用Ajax
作者:网络转载 发布时间:[ 2013/4/2 9:53:36 ] 推荐标签:
AjaxRequest类的设计思路其实是模仿HttpContext设计,HttpContext能够从基础的http请求报文分析出以后处理将要用到的数据(response,request,session,cookie等等)数据,而AjaxRequest通过分析Ajax的Post请求的数据域 Data分析出各种以后会用到的数据。如下是该类的代码:
public class AjaxRequest
{
private Dictionary<int, string> m_DictionaryParamsData = new Dictionary<int, string>();
private AjaxParameter m_AjaxParameter;
private int m_Count = 0;
#region 属性
/// <summary>
/// 是否是一个Ajax请求。
/// </summary>
public bool IsAjaxRequest { get; private set; }
/// <summary>
/// 请求的方法名字。
/// </summary>
public string MethodName { get; private set; }
/// <summary>
/// 参数数据。
/// </summary>
public AjaxParameter Parameters
{
get { return this.m_AjaxParameter; }
}
#endregion
#region 构造函数
private AjaxRequest(NameValueCollection nameValueCollection)
{
this.IsAjaxRequest = nameValueCollection["isAjaxRequest"] == "true";
if (this.IsAjaxRequest)
{
this.MethodName = nameValueCollection["MethodName"];
foreach (string value in nameValueCollection)
{
string formKey = string.Format("param{0}", this.m_Count);
if (nameValueCollection[formKey] != null)
{
this.m_DictionaryParamsData.Add(this.m_Count, nameValueCollection[formKey]);
this.m_Count++;
}
}
m_AjaxParameter = new AjaxParameter(this.m_DictionaryParamsData);
}
}
#endregion
#region 实例方法
public static AjaxRequest GetInstance(NameValueCollection nameValueCollection)
{
return new AjaxRequest(nameValueCollection);
}
#endregion
#region ToString
public override string ToString()
{
return this.MethodName;
}
#endregion
}
通过分析AjaxRequest的属性IsAjaxRequest可判断是否为Ajax请求,若该请求为一个Ajax请求,那么创建一个AjaxApplication实例,在创建AjaxApplication实例的过程中会利用当前页面和AjaxRequest提供的数据进行实际方法的调用(反射),该类是执行Ajax方法的核心类,其中会判断是否读取的到的方法是一个有效的方法,并判断从JS中AjaxApplication传入的参数类型的有效性,目前只提供对以下13中参数提供支持,如下:
(String、Boolean、Int32、Int64、UInt32、UInt64、Single、Double、Decimal、DateTime、DateTimeOffset、TimeSpan、Guid)
相关推荐
更新发布
功能测试和接口测试的区别
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