Is it possible to get Dictionary from query string?

asp.net-mvc-4, c#, query-string

Solution

In ASP.NET Core, you can use the following syntax (without needing a custom binder):

?dictionaryVariableName[KEY]=VALUE

Assuming you had this as your method:

public ActionResult SomeMethod([FromQuery] Dictionary<int, string> model)

And then called the following URL:

?model[0]=firstString&model[1]=secondString

Your dictionary would then be automatically populated. With values:

(0, "firstString")
(1, "secondString")

Problem

My controller method looks like this: ``` public ActionResult SomeMethod(Dictionary<int, string> model) { } ``` Is it possible to call this method and populate "model" using only query string? I mean, typing something like this: ``` ControllerName/SomeMethod?model.0=someText&model.1=someOtherText ``` in our browser address bar. Is it possible? EDIT: It would appear my question was misunderstood - I want to bind the query string, so that the Dictionary method parameter is populated automatically. In other words - I don't want to manually create the dictionary inside my method, but have some automathic .NET binder do it form me, so I can access it right away like this: ``` public ActionResult SomeMethod(Dictionary<int, string> model) { var a = model[SomeKey]; } ``` Is there an automatic binder, smart enough to do this?

Original source

Related problems