2013-03-21 101 views
0

我第一次使用MVC4,我試圖創建一個WebService。 但是,當我嘗試此操作時:http://localhost:****/api/mycontroller/?number=1&id=7 我無法從URL中檢索數據。MVC4從URL獲得請求變量

我怎樣才能得到這兩個變量? Request.QueryString["ParameterName"]導致錯誤,它不識別此功能。

謝謝。

+2

爲您的動作方法定義添加數字和ID參數 – 2013-03-21 20:43:44

回答

2

我假設您指的是允許我們構建RESTful應用程序的WebApi。如果是,那麼在ApiController中甚至不存在Request對象,因爲System.Web.Mvc未被導入。 Controller方法在ApiController中的工作方式與MVC控制器的不同之處在於api方法被使用或稱爲HTTP方法。所以,如果您有:

[HttpGet]   
public int Count(int id) 
{    
    return 50; 
} 

public string Get(int id) 
{ 
    return "value"; 
} 

這將默認情況下不工作,沒有添加自定義路線,因爲框架認爲這兩種方法是相同的。關於你的問題,如果你想捕捉查詢字符串的GET不是默認Get(int id)你應該將它們定義爲方法參數戴夫中提及,像這樣:

public string GetByNumberAndId(int number, int id) { 
    return "somevalue"; 
} 

,你可以直接調用該方法,你現在就在做:

http://localhost:****/api/mycontroller/?number=1&id=7 

你可以在它的official site上了解更多關於WebApi的信息。 This tutorial雖然是一年前寫的,但可以給你一個很好的推動,但它仍然是一個很好的資源。