【发布时间】:2012-08-30 22:02:59
【问题描述】:
将 rc 升级为 rtm web api 项目
简单类型参数的默认参数绑定现在是 [FromUri]:在以前版本的 ASP.NET Web API 中,简单类型参数的默认参数绑定使用模型绑定。简单类型参数的默认参数绑定现在是 [FromUri]。
我相信是让我感到厌烦的变化。
现在我不太确定。 StrathWeb 似乎让我觉得它应该按原样工作。
给定这个端点
[HttpGet]
public HttpResponseMessage Method(string a, string b)
{
...
}
我使用
在客户端生成一个 url@Url.RouteUrl("route", new { httproute = "", controller = "Controller", version = "1" })">
让它生成这个路由的url。
routes.MapHttpRoute(
name: "route",
routeTemplate: "api/v{version}/{controller}/Method",
defaults: new
{
action = "Method",
controller = "Controller",
version = "1"
});
它可以很好地创建 url。网址看起来像
.../api/v1/Controller/Method?optional=z
.../api/v1/Controller/Method?a=x&b=y&optional=z
请求时会抛出 404。如果我在api控制器中删除参数a和b,那么它就可以进入方法了。
进行这些绑定的正确方法是什么?
【问题讨论】:
标签: asp.net-mvc-4 asp.net-web-api