0

rcをrtmwebapiプロジェクトにアップグレードする

単純型パラメーターのデフォルトのパラメーターバインディングは[FromUri]になりました。ASP.NETWebAPIの以前のリリースでは、単純型パラメーターのデフォルトのパラメーターバインディングはモデルバインディングを使用していました。単純型パラメーターのデフォルトのパラメーターバインディングは[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をうまく作成します。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'をオプションにする必要がある場合は、それらをオプションのパラメーターにする必要があります。

public HttpResponseMessage Method(string a = null、string b = null

于 2012-08-30T22:47:40.470 に答える