0

将 rc 升级到 rtm web api 项目

简单类型参数的默认参数绑定现在是 [FromUri]:在以前版本的 ASP.NET Web API 中,简单类型参数的默认参数绑定使用模型绑定。简单类型参数的默认参数绑定现在是 [FromUri]。

我相信是导致我 greif 的变化。

好吧,现在我不太确定。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 ,那么它就可以很好地进入方法。

使这些绑定的正确方法是什么?

4

1 回答 1

3

如果您需要 'a' 和 'b' 是可选的,那么您需要将它们设为可选参数:

公共 HttpResponseMessage 方法(字符串 a = null,字符串 b = null

于 2012-08-30T22:47:40.470 回答