Если Вы ищете хороший и чистый способ разобрать ваши строковые значения запроса, я пришел с этим:C# ASP.NET QueryString анализатор
/// <summary>
/// Parses the query string and returns a valid value.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key">The query string key.</param>
/// <param name="value">The value.</param>
protected internal T ParseQueryStringValue<T>(string key, string value)
{
if (!string.IsNullOrEmpty(value))
{
//TODO: Map other common QueryString parameters type ...
if (typeof(T) == typeof(string))
{
return (T)Convert.ChangeType(value, typeof(T));
}
if (typeof(T) == typeof(int))
{
int tempValue;
if (!int.TryParse(value, out tempValue))
{
throw new ApplicationException(string.Format("Invalid QueryString parameter {0}. The value " +
"'{1}' is not a valid {2} type.", key, value, "int"));
}
return (T)Convert.ChangeType(tempValue, typeof(T));
}
if (typeof(T) == typeof(DateTime))
{
DateTime tempValue;
if (!DateTime.TryParse(value, out tempValue))
{
throw new ApplicationException(string.Format("Invalid QueryString parameter {0}. The value " +
"'{1}' is not a valid {2} type.", key, value, "DateTime"));
}
return (T)Convert.ChangeType(tempValue, typeof(T));
}
}
return default(T);
}
Я всегда хотела иметь что-то подобное и, наконец, получил это право ... по крайней мере я так думаю ...
код должен быть сам объяснительный ...
Любые комментарии или предложения, чтобы сделать его лучше оценены.
Возможно, вы справляетесь с этим раньше своего кода, но помните, что ключ может иметь несколько значений в querystring, т. Е. X = 1,2,3 – jro
@jro. Я считаю, что случай с несколькими значениями недействителен, поскольку запрос вызывает только одно значение, строку «1,2,3», анализируя ее как любую другое дело не будет правильным. – rtpHarry