如何在WebAPI中将可变数量的参数传递给GET

印刷风扇
config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

public HttpResponseMessage Get( string where_name, 
                                IndexFieldsModel index_fields = null )

public class IndexFieldsModel
{
    public List<IndexFieldModel> Fields { get; set; }
}

public class IndexFieldModel
{
    public string Name { get; set; }
    public string Value { get; set; }
}

这是我的API。我的问题是index_fields是名称值对的集合,这是可选的并且是可变长度的。问题是我不知道将要提前传递给我的GET方法的名称。一个示例调用是:
/api/workitems?where_name=workitem&foo=baz&bar=yo

是IModelBinder还是这里更简单的方法?如果是IModelBinder,如何遍历名称?我在这里看到了IModelBinder的示例:http : //www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api但是我没有看到一种遍历名称并选择“ foo”和“ bar”的方法。

我尝试将index_fields更改为Dictionary<string, string>IModelBinding,但没有执行任何操作:index_fields为null。在执行IModelBinder并调试IModelBinder.BindModel例程时,如果我深入到ModelBindingContext对象,则可以在中看到“ foo”和“ bar”值System.Web.Http.ValueProviders.Providers.QueryStringValueProvider,但是我不知道如何使用它。我尝试从头开始创建QueryStringValueProvider,但是它需要HttpActionContext。再说一次,我没有找到遍历键来获取“ foo”和“ bar”的方法。

顺便说一句:我正在使用VS2012

莫蒂·阿祖(Moti Azu)

您可以简单地遍历查询参数

public ActionResult Method()
{
    foreach(string key in Request.QueryString) 
    {
        var value = Request.QueryString[key];
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在React中将可变数量的props传递给JSX标签

是否可以将可变数量的参数传递给函数?

将可变数量的参数传递给模板类

如何将可变数量的参数传递给ant exec

如何将可变数量的参数传递给LLVM opt pass?

如何将可变数量的参数传递给lambda函数

如何将可变数量的参数传递给构造函数?

在 C 中,如何在调用 vsnprintf() 之前将可变数量的参数(比如 50+)传递给 va_start() 理解的函数?

将可变数量的参数传递给函数,然后使用这些参数在函数中调用函数

将可变数量的参数传递给嵌入式python API

如何将可变数量的变量传递给 pyspark 选择表达式

如何将可变数量的组件传递给 blazor 组件

如何将可变数量的MTLTextures传递给片段着色器?

在Swift中将可变数量的args从一个函数传递给另一个函数

如何将可变数组结构传递给数组

将可变数量的参数传递给一个看起来像“function(*x)”JavaScript 的函数

如何在Golang中将可变长参数作为参数传递给另一个函数?

如何在C ++ 11中实现可变参数模式以将可变数量的参数转发给函数?

如何将可变参数传递给基于参数数量调用特定函数的函数?

如何在Go中将可变参数从一个函数传递给另一个函数

传递可变数量的参数

在Ruby中,我可以将可变数量的lambda传递给方法吗?

将可变数量的参数转换为显式数量

如何传递方法并使用可变数量的参数调用它

如何将可变参数传递给std :: thread?

如何将可变参数传递给期望

如何将可变参数传递给观察者?

如何将可变参数传递给虚函数

如何在Rust中将可变向量作为函数参数传递?