将rc升级为rtm web api项目
简单类型参数的默认参数绑定现在是[FromUri]:在以前的ASP.NET Web API版本中,简单类型参数的默认参数绑定使用了模型绑定。简单类型参数的默认参数绑定现在是[FromUri]。
我相信是导致我变化的变化。
现在我不太确定。 StrathWeb似乎让我觉得应该按原样运作。
鉴于此终点
[HttpGet]
public HttpResponseMessage Method(string a, string b)
{
...
}
我使用
在客户端生成一个网址@Url.RouteUrl("route", new { httproute = "", controller = "Controller", version = "1" })">
让它为这条路线生成网址。
routes.MapHttpRoute(
name: "route",
routeTemplate: "api/v{version}/{controller}/Method",
defaults: new
{
action = "Method",
controller = "Controller",
version = "1"
});
它创建了网址。网址看起来像
.../api/v1/Controller/Method?optional=z
.../api/v1/Controller/Method?a=x&b=y&optional=z
请求时会抛出404。如果我删除了api控制器中的参数a和b,那么它就可以很好地进入方法了。
制作这些绑定的正确方法是什么?
答案 0 :(得分:3)
如果您需要'a'和'b'是可选的,那么您需要将它们作为可选参数:
公共HttpResponseMessage方法(字符串a = null ,字符串b = null )