2014-01-24 78 views
2

我得在WebApiConfig定義的路由:網頁API可變參數

config.Routes.MapHttpRoute(name: "dav", routeTemplate: 
"api/values/{*file}", defaults: new { controller = "Values", action = 
"Get" }); 

{*}文件的路徑模板的部分定義的參數個數是可變的。這在MSDN上被記錄。

得到了與行動得到了控制:

[AcceptVerbs("GET")] 
[ActionName("Get")] 
public HttpResponseMessage Get(param string[] file) 
{} 

當運行URI http://[mymachine]/api/values/1/1/2/3/命中的方法獲取。只有file數組是空的。

也試過像往常一樣:

public HttpResponseMessage Get(string[] file) 

而且

public HttpResponseMessage Get(string file) 

兩端在404

任何想法?

+2

您是否嘗試將'FromUri'屬性應用於任何這些組合的'file'參數? –

+0

@Damien_The_Unbeliever那樣做了!優秀的 –

+1

這是一個在黑暗中的野生刺傷,我不知道你的規格哪個(如果有的話)實際上會起作用。您應該將工作解決方案作爲答案*發佈(而不是將其置於問題的底部)並將其標記爲已接受(您必須等待一段時間才能完成此任務,IIRC)。這樣人們就知道你已經解決了這個問題,並且不需要更多的幫助。 –

回答

2

添加屬性FromUri解決了這個問題。

感謝@Damien_The_Unbeliever。

[AcceptVerbs("GET")] [ActionName("Get")] 
public HttpResponseMessage Get([FromUri] string file)