我的工作我的第一個Web API和我被困在試圖爲這些URL路由可選參數
1) http://mydomain.com/values/4 --> this number can be any, this is just an example
2) http://mydomain.com/values/
3) http://mydomain.com/values/?param1=test1¶m2=test2
4) http://mydomain.com/values/?param1=test1
5) http://mydomain.com/values/?param2=test2
我當前的路由規則
routes.MapHttpRoute(
name: "Route1",
routeTemplate: "{controller}/{id}/"
);
routes.MapHttpRoute(
name: "Route2",
routeTemplate: "{controller}/{param1}/{param2}",
defaults: new { param1 = RouteParameter.Optional, param2 = RouteParameter.Optional }
);
創建規則和我的方法服務這些URL
// GET values/
// GET values/?param1=test1¶m2=test2
// GET values/?param1=test1
// GET values/?param2=test2
public IEnumerable Get(string param1, string param2)
{
return new string[] { "value1", "value2" };
}
// GET values/5
public string Get(int id)
{
return "value";
}
我有2個問題
1)http://mydomain.com/values/
是不解析
2)http://mydomain.com/values/?param1=test1
和http://mydomain.com/values/?param2=test2
沒有解決。
你能幫我創造服務這些網址的路線?
謝謝,這是完美的工作。唯一的問題是,我想保持分開的方法,因爲我在我的問題上說過。如果我有一個單一的方法簽名'公共IEnumerable的獲取(INT?ID,字符串參數1,字符串參數2)' – StackOverflower 2012-07-17 19:47:50
您可以獲取(INT?編號),獲得(INT?ID,字符串參數1)或任意組合,路由沒有禁止這一點。 – Maess 2012-07-17 20:09:34
我會喜歡爲我的列表中的Get(int?id)'(對於我的列表中的url 1),'Get(string param1,string param2)'(其餘部分)。 – StackOverflower 2012-07-17 21:51:42