示例#1
0
        public static string ExtractString(this HttpRequest request, RequestCollectionType requestCollectionType, string key)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (string.IsNullOrWhiteSpace(key))
            {
                throw new ArgumentNullException(key);
            }

            string value = null;

            if (requestCollectionType == RequestCollectionType.Form && request.Form != null && request.Form.ContainsKey(key))
            {
                value = request.Form[key];
            }
            else if (requestCollectionType == RequestCollectionType.Query && request.Query != null && request.Query.ContainsKey(key))
            {
                value = request.Query[key];
            }
            else if (requestCollectionType == RequestCollectionType.Cookie && request.Cookies != null && request.Cookies.ContainsKey(key))
            {
                value = request.Cookies[key];
            }

            return(value);
        }
示例#2
0
        public static T ExtractValue <T>(this HttpRequest request, string key, T defaultValue, RequestCollectionType requestCollectionType = RequestCollectionType.Query)
        {
            string stringValue = ExtractString(request, requestCollectionType, key);
            T      value       = defaultValue;

            if (stringValue != null)
            {
                TypeConverter typeConverter = TypeDescriptor.GetConverter(typeof(T));
                if (typeConverter != null)
                {
                    if (typeConverter.CanConvertFrom(typeof(string)))
                    {
                        value = (T)typeConverter.ConvertTo(stringValue, typeof(T));
                    }
                }
            }

            return(value);
        }