我有一个C#WebApi 4项目,我正在尝试使用字符'/'的字符串参数。例如,我在参数中传递路径:
http://localhost/api/MyController/mypath/testing
我希望MyController中的Get方法中的id参数填充“mypath / testing”。但是,它看起来像路由这应该是两个参数,无法找到去哪里,所以它返回错误。
我想我需要更改默认路线。目前在WebApiConfig类中,它设置为:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
但我不确定使用什么类型的模式。有没有人有任何建议?
编辑:如果我将网址更改为http://localhost/api/MyController?id=mypath/testing并修改路线为:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}?{id}",
defaults: new { id = RouteParameter.Optional }
);
然后参数确实如此。但是,我要求不更改URL模式,也不要更改URL编码。