我們經常會遇到接收Url參數的值並把它轉化成一定的類型,如id 變成 int型的,有
時候接收的會是null 每次都進行判斷很麻煩,接收後轉化的類型各種各樣的都有
如把字串中的 "true" 轉化成 bool 等,這時可以用下面的方法
//泛型的小應用可以簡化一些代碼,最初的時候我寫了很多個方法如:
RequestToInt(...)
RequestToBool(...)
等等,調用
現在只要一個方法 ConvertRequest<T>(.........)
ConvertRequest<int>("id",0,false)
ConvertRequest<bool>("id",false,false)
ConvertRequest<DateTime>("id",DateTime.Now,false)
#region Request值為指字類型
/// <summary>
/// 轉化Request
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="param">參數</param>
/// <param name="defaultValue">預設值</param>
/// <param name="isRequestForm">是否表單參數(否為url中的參數)</param>
/// <returns>傳回值</returns>
public static T ConvertRequest<T>(string param, T defaultValue, bool isRequestForm)
{
string RequestStr = "";
if (!isRequestForm)
{
RequestStr = HttpContext.Current.Request.QueryString[param];
}
else
{
RequestStr = HttpContext.Current.Request.Form[param];
}
if (RequestStr != null)
{
try
{
return (T)System.Convert.ChangeType(RequestStr, typeof(T));
}
catch
{
return defaultValue;
}
}
else
{
return defaultValue;
}
}
#endregion