この質問では、回答はパラメータとしてオブジェクトを使用することを提案しています。これにアクセスするにはどのURLを使用しますか?OPの最初の例では、私の元のアプローチはアクションをオーバーロードすることでした(オーバーロードが正しい単語かどうかはわかりません)ので、次のようになりました。
public IEnumerable<NTOrder> Get()...
public IEnumerable<NTOrder> Get(int p)...
public IEnumerable<NTOrder> Get(int p, int q)
エレガントではありませんが、1つのオブジェクトに変更すると、URLのフォーマット方法がわかりません...
古いコード
public IEnumerable<NTOrder> Get() {
//build NTOrderList
return NTOrderList;
}
新しいコード
public class FilterView
{
public int? fID { get; set; }
public int? fCustomer { get; set; }
public string fSalesPerson{ get; set; }
}
public IEnumerable<NTOrder> Get(FilterView queryFilter) {
//build NTOrderList
List<NTOrder> result = (from order in NTOrderList
where (order.OrderID == queryFilter.fID || queryFilter.fID == null)
&& (order.CustomerID == queryFilter.fCustomer || queryFilter.fCustomer == null)
&& (queryFilter.fSalesPerson == null || order.Salesperson.Equals(queryFilter.fSalesPerson))
select order).ToList();
return result;
}