如何在Web API中获取传递给请求的所有参数

时间:2018-09-07 10:24:19

标签: c# api asp.net-web-api web httpwebrequest

我正在尝试获取所有传递给请求的参数,以便可以验证是否在类文件中未声明的任何参数将引发异常。

假设我的班级文件是:

    [PermissionFilter("somepermision")]
    [Route("/Userdetails", "POST")]
    public class UserDetails
    {
        public string surname{ get; set; }
        public string forename{ get; set; }
    }

所以如果用户错误地从邮递员发送参数,我想抛出一个异常。有没有办法从最终用户那里获取所有请求参数。这样我就可以根据自己的要求进行验证。假设用户在请求类文件中发送了一些额外的参数以及提及参数,我想在这种情况下抛出异常。

1 个答案:

答案 0 :(得分:0)

您将在MS_QueryNameValuePairs键的Request.Parameters中找到请求参数

 [HttpPost]
    public HttpResponseMessage Post()
    {
        var keyValuePair =this.Request.Properties["MS_QueryNameValuePairs"];
    }

并在其上进行四边循环以获取它们,或者您可以像这样手动获取它们:

      [HttpPost]
    public HttpResponseMessage Post()
    {
        var query = this.Request.RequestUri.Query;
        query.Remove(0);
        List<string> paramteters = query.Split('&').ToList();
     }

这将为您服务:D