In my REST API, my model binding is not mapping a property that is a list of objects. It correctly gets to the controller, and shows all the properties but they are empty.
E.g. for the POST request {age: 202, setting: ["school"]} I get something like this in the response:
Got param type=SearchStringDTO; param={"age":202,"setting":[]}
I want it to respond with something like this:
Got param type=SearchStringDTO; param={"age":202,"setting":["school":true, "hospital":false]}
How can I guide it to parse the setting parameter into a List<Setting> ?
Here is the controller:
using System.Web.Http;
...
        [HttpPost]
        public HttpResponseMessage Index(SearchStringDTO param) {
            return ResponseMessage(this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Got param type= " + param.GetType() + "; param = " + JsonConvert.SerializeObject(param)));
        }
Here is the model:
    public sealed class SearchStringDTO {
        public int age { get; set; }
        public List<Setting> setting { get; set; }
    }
Here is the Setting class:
    public class Setting {
        public bool hospital { get; set; }
        public bool school { get; set; }
    }
I started down this path to parse things out manually, but it's a nightmare of JObject, JToken, JArray stuff.
        [HttpPost]
        public IHttpActionResult Index(Newtonsoft.Json.Linq.JObject param) {
            return ResponseMessage(this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Got param type= " + param.GetType() + "; param = " + JsonConvert.SerializeObject(param)));
        }
Maybe I need a custom bind model? I got lost trying to figure out how to build and use one.
 
    