我在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结尾。
有什么想法吗?
答案 0 :(得分:2)
添加属性FromUri解决了这个问题。
感谢@Damien_The_Unbeliever。
[AcceptVerbs("GET")] [ActionName("Get")]
public HttpResponseMessage Get([FromUri] string file)