c#中的Javascript传统查询字符串参数

时间:2014-01-20 13:40:53

标签: c# asp.net-web-api

我正在调用web api方法。

API方法:

//get
public bool GetShoppingElementDetails(ElementSearchParameter elementSearchParameter)
{

}

class ElementSearchParameter{
   public string name;
   public list<int> ids;
}

实际上该方法是一个get方法,那么如何将multidimention数组参数传递给该函数,

我想,jquery框架使用“traditional = true”将整个对象转换为正确的查询字符串,以便mvc控制器完美地解析它。

在c#中我想做同样的事情。 如下所示,

ElementSearchParameter toSearch = new ElementSearchParameter{};

//convert the tosearch object into string object (parsing like jquery)
string toSearchString = ...

   HttpResponseMessage response = httpManager.Client.GetAsync(string.Format(_routePrefixMeta + "/OrderOffering/Elements/search/{1}", programID, toSearchString)).Result;
            return httpManager.ConstructData<List<OfferElementType>>(response);

1 个答案:

答案 0 :(得分:0)

我想你想知道如何在查询字符串上传递多个id并将它们解析为IEnumerable?

我认为唯一的方法是使用自定义的ModelBinder。您可以找到类似How to pass an array of integers to ASP.NET Web API?

的示例

然后 - 如上面的链接所述 - 您可以说:/ Categories?categoryids = 1,2,3,4,ASP.NET Web API将正确绑定您的categoryIds数组。