【发布时间】:2012-10-17 22:25:55
【问题描述】:
我很高兴在这里使用 Web Api 品种处理我的第一个 MVC 4 项目。
在 MVC 3 中,我可以获得如下查询字符串参数:
var unicornName = Request.Query["unicornName"];
但在 MVC 4 中,请求似乎从 HttpRequestBase 变为 HttpRequestMessage,并且不再有 Query 参数。所以,嗯,好吧,我现在如何得到它们。我在网上找到了几个例子,但它们很荒谬。
This fellow recommends 用“&”分割 RequestUri 的查询字符串并找到你的参数和配对。 And this example 显示在返回键值对列表的新请求对象上调用 GetQueryNameValuePairs 方法,然后执行一些 linq 来查找您的键和值。要得到如此简单的东西,真的不可能如此倒退。请告诉我我遗漏了什么!
注意:我可以理解它正在走模型绑定的方式,我应该通过操作的方法参数引入查询字符串参数,但仍然有需要提取查询字符串变量的时候(很容易?)来自请求,例如在过滤器中。
【问题讨论】:
-
使用键/值对列表有什么问题?对我来说听起来很合理。
-
哇.. 我想我没有错过任何东西。我猜这是一个回归问题。您更愿意使用什么,request["blah"] 或 request.GetQueryNameValuePairs().ToDictionary(e => e.Key, e => e.Value)["blah"]?
-
似乎 Request.QueryString["query-string-name"] 又回到了 MVC 5 中,我自己尝试了一下,一切都像魅力一样。
标签: asp.net-mvc-4 asp.net-web-api httprequest