我需要将uri作为路径参数传递给webapi操作方法:
http://some.url/api/controller/method/%2FforeignRoute%2F7e12cd15-d49d-4b16-9fe5-94b5f3ea3ecd%2Fhello%2Fworld%2FsomeResourceId
..将映射到属性路由定义:
Route("api/controller/method/{theuri}")
..但最后一段始终被解码,asp.net / webapi返回404。
这不应该是一个问题,但也许我会咆哮错误的树?
答案 0 :(得分:0)
%2F
的网址编码值是正斜杠/
,因此您的uri变为
http://some.url/api/controller/method//foreignRoute/7e12cd15-d49d-4b16-9fe5-94b5f3ea3ecd/hello/world/someResourceId
^^
双斜线在此处创建问题。这是不可用的,你得到404.你应该改为
Route("api/controller/method{theuri}")