1

我正在重写一个简单的 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”的定义,并且找不到接受“System.Web.HttpRequestBase”类型的第一个参数的扩展方法“RequestUri”(您是否缺少 using 指令或装配参考?)

我去了微软文档,但它们几乎是空的。

4

3 回答 3

7

该对象是-notRequest的一个实例。没有财产。您正在寻找的物业是:HttpRequestHttpWebRequestHttpRequest.RequestUriRequest.Url.Query

HttpUtility.ParseQueryString(Request.Url.Query);

http://msdn.microsoft.com/en-us/library/system.web.httprequest.url.aspx

于 2013-06-04T12:58:39.953 回答
4

你混淆System.Net.HttpWebRequestSystem.Web.HttpRequest.

前者用于向外部服务器发起 HTTP 请求。后者用于表示发送到您的服务器的 HTTP 请求(并Request在页面和控制器中使用别名,引用System.Web.HttpContext.Current.Request)。

于 2013-06-04T13:03:03.960 回答
1

我很晚了......但我想与其他人分享我的经验。我有同样的问题。最后,我发现是因为我继承了错误的基类。

API => System.Web.Http.ApiController
MVC => System.Web.Mvc.Controller
于 2017-05-20T07:38:28.230 回答