2013-06-04 26 views
1

我正在重寫一個簡單的API GET函數。我想讓它更加靈活,所以我試圖複製這個question中給出的例子。如何在.NET中使用Request.RequestUri.Query? (錯誤11'System.Web.HttpRequestBase'不包含'RequestUri'的定義)

我的代碼:

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'(可以找到缺少使用指令或程序集引用嗎?)

我去了微軟docs,但他們幾乎是空的。

回答

4

你跟System.Web.HttpRequest混淆System.Net.HttpWebRequest

前者用於向外部服務器發起HTTP請求。後者用於表示發送到服務器的HTTP請求(在頁面和控制器中被別名爲Request,引用System.Web.HttpContext.Current.Request)。

+0

+1用於解釋兩個類別之間的差異。 –

+0

Thx的解釋。 –

1

我很晚...但我想分享我的經驗給別人。 我有同樣的問題。最後,我發現這是因爲我繼承了錯誤的基類。

API => System.Web.Http.ApiController 
MVC => System.Web.Mvc.Controller 
相關問題