使用Web API访问查询字符串和表单参数

pub*_*tic 8 c# asp.net-web-api

如果您因为任何原因选择不在HttpPost请求中使用modelbinding,还有哪些其他方法可以访问QueryString(HttpGet)或Form参数(HttpPost)?

传统上你可以这样做:

Request.QueryString["Key"]
Request.Form["Key"]
Request["Key"]
Run Code Online (Sandbox Code Playgroud)

我似乎无法在Web API中找到任何类似的东西.

Mar*_* N. 8

对于查询字符串参数,您可以GetQueryNameValuePairsHttpRequestMessage(它是一个扩展方法)上使用.

对于表单数据,您需要将操作定义为此,并将原始表单数据(预参数绑定)传递给您:

public void Post(NameValueCollection formData)
{
   var value = formData["key"];
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*att 0

这就是 Intellisense 派上用场的地方。只需键入Request.并查看您可以使用的内容。我个人总是只包含我的方法的参数以绑定数据;不太确定存在什么用例,您不会以这种方式处理它。不过,据我所知,至少Request.GetQueryNameValuePairs可以让您获取查询字符串。我看不到任何Request可以让您访问帖子正文的内容,但也许我错过了它,或者它被埋在除 之外的其他地方Request