WEBAPI中的Request是HttpRequestMessage类型,不能像Web传统那样有querystring和from 方法接收参数,而传统的HttpReqest的基类是HttpReqestBase
所以这里我们就直接使用(HttpContextBase)Request.Properties["MS_HttpContext"]
1 2 3 4 5 6 |
public void Post([FromBody]string value) { HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string name = request.Form["name"]; } |
1.获取遍历路由参数
1 2 3 4 5 6 7 8 9 |
//获取路由参数 IDictionary<string, object> dic = this.RequestContext.RouteData.Values; StringBuilder builder = new StringBuilder(); foreach (var item in dic) { builder.AppendFormat("key:{0},value:{1}", item.Key, item.Value); builder.AppendLine(); } return builder.ToString(); |
2.遍历表单参数
1 2 3 4 5 6 7 8 9 10 |
////获取表单参数 HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 StringBuilder builder = new StringBuilder(); foreach (string item in request.Form.Keys) { builder.AppendFormat("key:{0},value:{1}", item, request.Form[item]); builder.AppendLine(); } return builder.ToString(); |