Web Api变量参数

时间:2014-01-24 07:58:59

标签: c# asp.net-web-api

我在WebApiConfig中定义了一条路线:

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

路径模板的 {* file} 部分定义参数的数量是可变的。这是MSDN上的文件。

控制器有动作获取:

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

运行时,uri http://[mymachine]/api/values/1/1/2/3/会点击Get方法。只有file数组为空。

也尝试了通常的:

public HttpResponseMessage Get(string[] file)

public HttpResponseMessage Get(string file)

两者都以404结尾。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

添加属性FromUri解决了这个问题。

感谢@Damien_The_Unbeliever。

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