我正在使用New MVC Web Api我有这样的事情:
public class CustomersController : ApiController
{
public HttpResponseMessage Get()
{
//Return Somethings
}
}
我用/ api / customers
来称呼它现在我希望能够按国籍和身份进行过滤,所以我做了这个:
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
?
答案 0 :(得分:4)
这样的事情可以解决问题
routes.MapHttpRoute(
name: "CustomersByIdAndNat",
routeTemplate: "api/customers/{Id}/{Nat}/",
defaults: new { controller = "Customers" }
);
作为旁注,/1/us
不是查询字符串。 Querystring是网址上?
符号后面的内容。例如,在你的情况下,可能是这样的
api/customers/?id=1&nat=us
不是说您需要更改网址格式,只是解释这个概念。