如何在.net中使用Request.RequestUri.Query ?System.Web.HttpRequestBa
本文关键字:Query RequestUri System HttpRequestBa Web Request net | 更新日期: 2023-09-27 18:16:47
我正在重写一个简单的API GET函数。我想让它更灵活,所以我试着复制这个问题中给出的例子。
我代码: public IEnumerable<Distributeur> GetDistributeurs()
{
NameValueCollection nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query);
var departementCode = nvc["departementCode"];
// BL comes here
var repository = new LeadRepository();
return repository.getDistributeurs(departementCode);
}
不幸的是,我得到一个错误'无法解决RequestUri'和构建:
错误11 'System.Web。HttpRequestBase'不包含'RequestUri'的定义,也没有扩展方法'RequestUri'接受类型为'System.Web '的第一个参数。可以找到HttpRequestBase'(您是否缺少using指令或程序集引用?)
我去了微软文档,但他们几乎是空的。
Request
对象是HttpRequest
的一个实例,而不是HttpWebRequest
。没有属性HttpRequest.RequestUri
。您要查找的属性是Request.Url.Query
:
HttpUtility.ParseQueryString(Request.Url.Query);
http://msdn.microsoft.com/en-us/library/system.web.httprequest.url.aspx 你把System.Net.HttpWebRequest
和System.Web.HttpRequest
搞混了。
前者用于向外部服务器发起HTTP请求。后者用于表示发送到服务器的HTTP请求(在页面和控制器中别名为Request
,引用System.Web.HttpContext.Current.Request
)。
我迟到了…但我想分享我的经验给别人。我也有同样的问题。最后,我发现这是因为我继承了错误的基类。
API => System.Web.Http.ApiController
MVC => System.Web.Mvc.Controller