0

新しい MVC Web Api を使用しています。次のようなものがあります。

    public class CustomersController : ApiController
    {
  public HttpResponseMessage Get()
        {
            //Return Somethings
        }
    }

/api/customers で呼び出します

今、私は国籍とIDでフィルタリングできるようにしたいので、これを作りました:

public class CustomersController : ApiController
{
    public HttpResponseMessage Get(int Id, String Nat)
    {
        //and i filter here Return Somethings
    }
}

最初のメソッドを呼び出して使用しようとする/api/customers/1/usと、これらがクエリ文字列であることを理解しています。使用できるようにルートを定義するにはどうすればよい/api/customers/1/usですか?

4

1 に答える 1

4

このような何かがうまくいくはずです

routes.MapHttpRoute(
     name: "CustomersByIdAndNat",
     routeTemplate: "api/customers/{Id}/{Nat}/",
     defaults: new { controller = "Customers" }
);

補足として、/1/usクエリ文字列ではありません。クエリ文字列?は、URL のシンボルの後に来るものです。たとえば、あなたの場合、このようなものになる可能性があります

api/customers/?id=1&nat=us

URL 形式を変更する必要があると言っているのではなく、概念を説明しているだけです。

于 2012-09-21T21:02:29.690 に答える