public static TModel Get <TModel>(this HttpRequest request, HttpRequestGetMode getMode = HttpRequestGetMode.Default) { TModel inst = Activator.CreateInstance <TModel>(); foreach (var prop in typeof(TModel).GetProperties()) { if (prop.SetMethod == null) { continue; } var value = Get(request, prop.Name, getMode); if (value == null) { continue; } prop.SetValue(inst, value.To(prop.PropertyType)); } return(inst); }
public static string Get(this HttpRequest request, string name, HttpRequestGetMode getMode = HttpRequestGetMode.Default) { switch (getMode) { case HttpRequestGetMode.Default: return(request[name] ?? (string)HttpContext.Current.Items["QueryParams_" + name]); case HttpRequestGetMode.GetOnly: return(request.QueryString[name]); case HttpRequestGetMode.PostOnly: return(request.Form[name]); default: { var val = request.QueryString[name]; if (val != null) { return(val); } return(request.Form[name]); } } }