0

我正在使用 New 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不是查询字符串。Querystring?在 url 上的符号之后出现的。例如在你的情况下,可能是这样的

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

不是说你需要改变url格式,只是解释一下这个概念。

于 2012-09-21T21:02:29.690 回答