0

これがルーティング設定の方法です。

 routes.MapHttpRoute(
                        name: "Authors",
                        routeTemplate: "api/authors",
                        defaults: new { controller = "authors" }
                    );

コントローラーアクションメソッド

// GET /api/authors/
    public string GetAuthors(string author_ids)
    {
        return data;
    }

Url http://site.com/api/authors?author_ids=1は実際にはコントローラー アクションを呼び出しますが、クエリ文字列パラメーターを渡さないと、一致するコントローラー アクションが見つからないと表示されます。

ルートを定義するときにオプションのクエリ文字列パラメータを処理する方法は?

4

3 に答える 3

0

次のように指定できます。

routes.MapHttpRoute(
    name: "Authors",
    routeTemplate: "api/{controller}/{author_ids}",
    defaults: new { author_ids = RouteParameter.Optional }
);
于 2014-09-02T10:59:29.553 に答える
0
// GET /api/authors/
    public IEnumerable<string> GetAuthors()
    {
        return data;
    }

パラメータを取らないアクションを定義する必要があります。

ただし、オプションとしてルートに id を追加することをお勧めします。

routes.MapHttpRoute(
                        name: "Authors",
                        routeTemplate: "api/{controller}/{id}",
                        defaults: new { id = RouteParameter.Optional }
                    );
于 2012-07-18T20:20:06.287 に答える
0

次のように具体的に指定できます。

routes.MapHttpRoute(
    name: "Authors",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

アクションは次のいずれかになります。

// GET /api/authors/?XXXX
public IEnumerable<string> GetAuthors( [FromUri] String author_ids)
{
    return data;
}

これはクエリ文字列にのみ一致します。[FromUri]を使用すると、パラメーターをクエリ文字列から取得できます。

于 2014-09-02T10:43:42.787 に答える