将查询字符串值绑定到字典

qJa*_*ake 5 c# asp.net-mvc query-string asp.net-web-api

我正在使用Web API(ASP.NET MVC 5的一部分),并且试图将querystring值绑定到Dictionary<int, bool>

我的Web API方法很简单:

[HttpGet]
[Route("api/items")]
public IQueryable<Item> GetItems(Dictionary<int, bool> cf)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试调用此URL:

/api/items?cf[1009]=true&cf[1011]=true&cf[1012]=false&cf[1015]=true
Run Code Online (Sandbox Code Playgroud)

参数cf始终为null

如何通过QueryString将值的字典传递给Web API方法?

小智 6

当您要使用查询字符串参数传递字典(主要是键和值对)时,应使用以下格式: &parameters[0].key=keyName&parameters[0].value=keyValue

在我的Action方法签名中,参数定义为:

Dictionary<string,string> parameters
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

在阅读Scott Hanselman的这篇文章后,我自己就能弄清楚这一点。所以,谢谢斯科特!

谢谢,尼拉夫