0

ここに私の行動があります

public AddressModel[] Get()
{
    return addresses.ToArray();
}

public AddressModel Get([FromUri]GetAddressModelById model)
{
    return Addresses.FirstOrDefault(x => x.Id == model.Id);
}
...
public class GetAddressModelById
{
    public Guid Id { get; set; }
}

URLは次のようになります

domain:port/api/controller
domain:port/api/controller/[guid]

ルーティングはデフォルトのルーティングです。これを実行すると、例外が発生しますMultiple actions were found that match the request。これが機能するために何が欠けていますか?

4

2 に答える 2

0

このエラーが発生する理由は、domain:port / api / controllerをリクエストした場合、それをディスパッチするGet()Get([FromUri]GetAddressModelById model)、モデルをnullに設定するかを決定できないためです。この場合、次の2つのオプションがあります

  1. クラスラッパーの代わりにプレーンなGuidタイプのパラメーターを使用する
  2. URIを介して送信するのではなく、本文に複合型を投稿する
于 2012-08-24T21:56:06.110 に答える
0

domain:port/api/controller/model=[guid] を試してください

あなたができるならそれも良いでしょう:

public AddressModel Get([FromUri]Guid モデル) { ... }

于 2012-08-24T07:12:04.027 に答える