Asp.net mvc 4 具有对象参数的MVC操作的URL(使用web API)

Asp.net mvc 4 具有对象参数的MVC操作的URL(使用web API),asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,答案中建议使用对象作为参数。我将使用什么URL访问它? 在OP的第一个示例中,我最初的方法是重载操作(不确定重载是否是正确的词),因此我有: public IEnumerable<NTOrder> Get()... public IEnumerable<NTOrder> Get(int p)... public IEnumerable<NTOrder> Get(int p, int q) public IEnumerable Get()。。。 公共IEn

答案中建议使用对象作为参数。我将使用什么URL访问它? 在OP的第一个示例中,我最初的方法是重载操作(不确定重载是否是正确的词),因此我有:

public IEnumerable<NTOrder> Get()...

public IEnumerable<NTOrder> Get(int p)...

public IEnumerable<NTOrder> Get(int p, int q)
public IEnumerable Get()。。。
公共IEnumerable Get(int p)。。。
公共IEnumerable Get(int p,int q)
不优雅,我知道,但如果我将它更改为一个对象,我不知道如何格式化URL

旧代码

public IEnumerable<NTOrder> Get() {
    //build NTOrderList
    return NTOrderList;
}
public IEnumerable Get(){
//建立一个有序列表
返回命令列表;
}
新代码

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;
}
公共类过滤器视图
{
公共int?fID{get;set;}
公共int?fccustomer{get;set;}
公共字符串fSalesPerson{get;set;}
}
公共IEnumerable Get(FilterView查询过滤器){
//建立一个有序列表
列表结果=(从NTOrderList中的顺序)
其中(order.OrderID==queryFilter.fID | | queryFilter.fID==null)
&&(order.CustomerID==queryFilter.fCustomer | | queryFilter.fCustomer==null)
&&(queryFilter.fSalesPerson==null | | order.Salesperson.Equals(queryFilter.fSalesPerson))
选择order);
返回结果;
}

URL的工作方式完全相同,对象中的每个属性都有一个querystring参数。

我找到了一个可能的解决方案,基本上建议在URL中以JSON的形式传递数据,并添加一个过滤器将其转换为复杂对象,但正如那篇文章中的评论所说,这不是最优雅的方式……有人有更优雅的解决方案吗?

我尝试过……我收到一条异常消息:没有MediaTypeFormatter可以从媒体类型为“undefined”的内容中读取类型为“FilterView”的对象。我已经发布了我的新旧代码片段……旧的url只是。对于新的代码,我尝试了各种方法,比如使用全/无变量的组合