[{"data":1,"prerenderedAt":1930},["ShallowReactive",2],{"blog:2018:comma-separated-parameters-webapi":3,"blogMore-Development":1873,"comments-comma-separated-parameters-webapi":1886},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"category":11,"tags":12,"excerpt":16,"body":41,"_type":1865,"_id":1866,"_source":1867,"_file":1868,"_stem":1869,"_extension":1870,"url":1871,"wordCount":1872,"minutes":168,"commentCount":72},"/blog/2018/comma-separated-parameters-webapi","2018",false,"en","Comma-separated parameter values in WebAPI","The model binding mechanism in ASP.NET is slick - it's highly extensible and built on TypeDescriptor for re-use that lets you avoid writing boilerplate code to map between CLR objects and their web representations.","2018-04-22T11:07:00-08:00","Development",[13,14,15],"ASP.NET","webdev","C#",{"type":17,"children":18},"root",[19,36],{"type":20,"tag":21,"props":22,"children":23},"element","p",{},[24,27,34],{"type":25,"value":26},"text","The model binding mechanism in ASP.NET is slick - it's highly extensible and built on ",{"type":20,"tag":28,"props":29,"children":31},"code",{"className":30},[],[32],{"type":25,"value":33},"TypeDescriptor",{"type":25,"value":35}," for re-use that lets you avoid writing boilerplate code to map between CLR objects and their web representations.",{"type":20,"tag":21,"props":37,"children":38},{},[39],{"type":25,"value":40},"One surprise, however, is that out of the box, neither WebAPI nor MVC support comma-separated parameter values when bound to an array, e.g.",{"type":17,"children":42,"toc":1861},[43,53,57,229,258,263,268,286,332,339,355,360,1672,1678,1691,1846,1855],{"type":20,"tag":21,"props":44,"children":45},{},[46,47,52],{"type":25,"value":26},{"type":20,"tag":28,"props":48,"children":50},{"className":49},[],[51],{"type":25,"value":33},{"type":25,"value":35},{"type":20,"tag":21,"props":54,"children":55},{},[56],{"type":25,"value":40},{"type":20,"tag":58,"props":59,"children":64},"pre",{"className":60,"code":61,"language":62,"meta":63,"style":63},"language-csharp shiki shiki-themes everforest-light dracula","public class MyController : Controller {\n    public string Page([FromUri]int[] ids) {\n        return String.Join(\" ; \", ids);\n    }\n}\n","csharp","",[65],{"type":20,"tag":28,"props":66,"children":67},{"__ignoreMap":63},[68,109,166,211,220],{"type":20,"tag":69,"props":70,"children":73},"span",{"class":71,"line":72},"line",1,[74,80,86,92,98,104],{"type":20,"tag":69,"props":75,"children":77},{"style":76},"--shiki-default:#F57D26;--shiki-dark:#FF79C6",[78],{"type":25,"value":79},"public",{"type":20,"tag":69,"props":81,"children":83},{"style":82},"--shiki-default:#F85552;--shiki-dark:#FF79C6",[84],{"type":25,"value":85}," class",{"type":20,"tag":69,"props":87,"children":89},{"style":88},"--shiki-default:#3A94C5;--shiki-dark:#8BE9FD",[90],{"type":25,"value":91}," MyController",{"type":20,"tag":69,"props":93,"children":95},{"style":94},"--shiki-default:#5C6A72;--shiki-dark:#F8F8F2",[96],{"type":25,"value":97}," : ",{"type":20,"tag":69,"props":99,"children":101},{"style":100},"--shiki-default:#3A94C5;--shiki-default-font-style:inherit;--shiki-dark:#8BE9FD;--shiki-dark-font-style:italic",[102],{"type":25,"value":103},"Controller",{"type":20,"tag":69,"props":105,"children":106},{"style":94},[107],{"type":25,"value":108}," {\n",{"type":20,"tag":69,"props":110,"children":112},{"class":71,"line":111},2,[113,118,124,130,135,140,145,150,155,161],{"type":20,"tag":69,"props":114,"children":115},{"style":76},[116],{"type":25,"value":117},"    public",{"type":20,"tag":69,"props":119,"children":121},{"style":120},"--shiki-default:#3A94C5;--shiki-dark:#FF79C6",[122],{"type":25,"value":123}," string",{"type":20,"tag":69,"props":125,"children":127},{"style":126},"--shiki-default:#8DA101;--shiki-dark:#50FA7B",[128],{"type":25,"value":129}," Page",{"type":20,"tag":69,"props":131,"children":132},{"style":94},[133],{"type":25,"value":134},"([",{"type":20,"tag":69,"props":136,"children":137},{"style":100},[138],{"type":25,"value":139},"FromUri",{"type":20,"tag":69,"props":141,"children":142},{"style":94},[143],{"type":25,"value":144},"]",{"type":20,"tag":69,"props":146,"children":147},{"style":120},[148],{"type":25,"value":149},"int",{"type":20,"tag":69,"props":151,"children":152},{"style":94},[153],{"type":25,"value":154},"[] ",{"type":20,"tag":69,"props":156,"children":158},{"style":157},"--shiki-default:#5C6A72;--shiki-default-font-style:inherit;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic",[159],{"type":25,"value":160},"ids",{"type":20,"tag":69,"props":162,"children":163},{"style":94},[164],{"type":25,"value":165},") {\n",{"type":20,"tag":69,"props":167,"children":169},{"class":71,"line":168},3,[170,175,180,185,190,196,202,206],{"type":20,"tag":69,"props":171,"children":172},{"style":82},[173],{"type":25,"value":174},"        return",{"type":20,"tag":69,"props":176,"children":177},{"style":94},[178],{"type":25,"value":179}," String.",{"type":20,"tag":69,"props":181,"children":182},{"style":126},[183],{"type":25,"value":184},"Join",{"type":20,"tag":69,"props":186,"children":187},{"style":94},[188],{"type":25,"value":189},"(",{"type":20,"tag":69,"props":191,"children":193},{"style":192},"--shiki-default:#8DA101;--shiki-dark:#E9F284",[194],{"type":25,"value":195},"\"",{"type":20,"tag":69,"props":197,"children":199},{"style":198},"--shiki-default:#8DA101;--shiki-dark:#F1FA8C",[200],{"type":25,"value":201}," ; ",{"type":20,"tag":69,"props":203,"children":204},{"style":192},[205],{"type":25,"value":195},{"type":20,"tag":69,"props":207,"children":208},{"style":94},[209],{"type":25,"value":210},", ids);\n",{"type":20,"tag":69,"props":212,"children":214},{"class":71,"line":213},4,[215],{"type":20,"tag":69,"props":216,"children":217},{"style":94},[218],{"type":25,"value":219},"    }\n",{"type":20,"tag":69,"props":221,"children":223},{"class":71,"line":222},5,[224],{"type":20,"tag":69,"props":225,"children":226},{"style":94},[227],{"type":25,"value":228},"}\n",{"type":20,"tag":21,"props":230,"children":231},{},[232,234,240,242,248,250,256],{"type":25,"value":233},"Will only return ",{"type":20,"tag":28,"props":235,"children":237},{"className":236},[],[238],{"type":25,"value":239},"1 ; 2 ; 3",{"type":25,"value":241}," when supplied with ",{"type":20,"tag":28,"props":243,"children":245},{"className":244},[],[246],{"type":25,"value":247},"/my/page?ids=1&ids=2&ids=3",{"type":25,"value":249}," and if you instead give it ",{"type":20,"tag":28,"props":251,"children":253},{"className":252},[],[254],{"type":25,"value":255},"/my/page?ids=1,2,3",{"type":25,"value":257}," it will fail.",{"type":20,"tag":21,"props":259,"children":260},{},[261],{"type":25,"value":262},"The reason was likely because there is no standard for this at all and that the former - supported - scenario maps to what forms do when they post multiple value selections such as that in a select list box. The latter is much more readable and is expected by some client frameworks and supported by some other web frameworks such as the Java Spring MVC framework.",{"type":20,"tag":21,"props":264,"children":265},{},[266],{"type":25,"value":267},"Naturally, that extensible system lets us easily extend this behaviour. We can support both transparently - and interestingly enough - even mix-and-match on the same URL. So for example;",{"type":20,"tag":21,"props":269,"children":270},{},[271,277,279,284],{"type":20,"tag":28,"props":272,"children":274},{"className":273},[],[275],{"type":25,"value":276},"/my/page?ids=1,2&ids=3",{"type":25,"value":278}," will now return ",{"type":20,"tag":28,"props":280,"children":282},{"className":281},[],[283],{"type":25,"value":239},{"type":25,"value":285}," in our example.",{"type":20,"tag":287,"props":288,"children":289},"blockquote",{},[290],{"type":20,"tag":21,"props":291,"children":292},{},[293,295,301,303,309,311,317,319,324,326],{"type":25,"value":294},"Although this supports both types if you are currently using commas in your number format this would break your app. e.g. ",{"type":20,"tag":28,"props":296,"children":298},{"className":297},[],[299],{"type":25,"value":300},"?ids=1,200&ids=3,500",{"type":25,"value":302}," would have been ",{"type":20,"tag":304,"props":305,"children":306},"strong",{},[307],{"type":25,"value":308},"correctly",{"type":25,"value":310}," received as ",{"type":20,"tag":28,"props":312,"children":314},{"className":313},[],[315],{"type":25,"value":316},"1200, 500",{"type":25,"value":318}," but now would be ",{"type":20,"tag":304,"props":320,"children":321},{},[322],{"type":25,"value":323},"incorrectly received",{"type":25,"value":325}," as ",{"type":20,"tag":28,"props":327,"children":329},{"className":328},[],[330],{"type":25,"value":331},"1, 200, 3, 500",{"type":20,"tag":333,"props":334,"children":336},"h2",{"id":335},"commaseparatedarraymodelbinder-class",[337],{"type":25,"value":338},"CommaSeparatedArrayModelBinder class",{"type":20,"tag":21,"props":340,"children":341},{},[342,344,353],{"type":25,"value":343},"My ",{"type":20,"tag":345,"props":346,"children":350},"a",{"href":347,"rel":348},"https://github.com/damieng/DamienGKit/blob/master/CSharp/DamienG.Library/Web/CommaSeparatedArrayModelBinder.cs",[349],"nofollow",[351],{"type":25,"value":352},"DamienGKit project",{"type":25,"value":354}," contains the source but, I'll also present it here.",{"type":20,"tag":21,"props":356,"children":357},{},[358],{"type":25,"value":359},"Out of the box, this supports integer types and GUIDs and could be extended for floats and decimals, but just be careful with that formatting!",{"type":20,"tag":58,"props":361,"children":363},{"className":60,"code":362,"language":62,"meta":63,"style":63},"public class CommaSeparatedArrayModelBinder : IModelBinder {\n    private static readonly Type[] supportedElementTypes = {\n        typeof(int), typeof(long), typeof(short), typeof(byte),\n        typeof(uint), typeof(ulong), typeof(ushort), typeof(Guid)\n    };\n\n    public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) {\n        if (!IsSupportedModelType(bindingContext.ModelType)) return false;\n        var valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);\n        var stringArray = valueProviderResult?.AttemptedValue\n            ?.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);\n        if (stringArray == null) return false;\n        var elementType = bindingContext.ModelType.GetElementType();\n        if (elementType == null) return false;\n\n        bindingContext.Model = CopyAndConvertArray(stringArray, elementType);\n        return true;\n    }\n\n    private static Array CopyAndConvertArray(IReadOnlyList\u003Cstring> sourceArray, Type elementType) {\n        var targetArray = Array.CreateInstance(elementType, sourceArray.Count);\n        if (sourceArray.Count > 0) {\n            var converter = TypeDescriptor.GetConverter(elementType);\n            for (var i = 0; i \u003C sourceArray.Count; i++)\n                targetArray.SetValue(converter.ConvertFromString(sourceArray[i]), i);\n        }\n        return targetArray;\n    }\n\n    internal static bool IsSupportedModelType(Type modelType) {\n        return modelType.IsArray && modelType.GetArrayRank() == 1\n                && modelType.HasElementType\n                && supportedElementTypes.Contains(modelType.GetElementType());\n    }\n\n}\n\npublic class CommaSeparatedArrayModelBinderProvider : ModelBinderProvider {\n    public override IModelBinder GetBinder(HttpConfiguration configuration, Type modelType) {\n        return CommaSeparatedArrayModelBinder.IsSupportedModelType(modelType)\n            ? new CommaSeparatedArrayModelBinder() : null;\n    }\n}\n",[364],{"type":20,"tag":28,"props":365,"children":366},{"__ignoreMap":63},[367,396,433,507,579,587,597,648,704,756,792,853,893,932,969,977,1006,1023,1031,1039,1107,1148,1179,1212,1275,1312,1321,1334,1342,1350,1389,1435,1453,1485,1493,1501,1509,1517,1547,1600,1622,1656,1664],{"type":20,"tag":69,"props":368,"children":369},{"class":71,"line":72},[370,374,378,383,387,392],{"type":20,"tag":69,"props":371,"children":372},{"style":76},[373],{"type":25,"value":79},{"type":20,"tag":69,"props":375,"children":376},{"style":82},[377],{"type":25,"value":85},{"type":20,"tag":69,"props":379,"children":380},{"style":88},[381],{"type":25,"value":382}," CommaSeparatedArrayModelBinder",{"type":20,"tag":69,"props":384,"children":385},{"style":94},[386],{"type":25,"value":97},{"type":20,"tag":69,"props":388,"children":389},{"style":100},[390],{"type":25,"value":391},"IModelBinder",{"type":20,"tag":69,"props":393,"children":394},{"style":94},[395],{"type":25,"value":108},{"type":20,"tag":69,"props":397,"children":398},{"class":71,"line":111},[399,404,409,414,419,424,429],{"type":20,"tag":69,"props":400,"children":401},{"style":76},[402],{"type":25,"value":403},"    private",{"type":20,"tag":69,"props":405,"children":406},{"style":76},[407],{"type":25,"value":408}," static",{"type":20,"tag":69,"props":410,"children":411},{"style":76},[412],{"type":25,"value":413}," readonly",{"type":20,"tag":69,"props":415,"children":416},{"style":100},[417],{"type":25,"value":418}," Type",{"type":20,"tag":69,"props":420,"children":421},{"style":94},[422],{"type":25,"value":423},"[] supportedElementTypes ",{"type":20,"tag":69,"props":425,"children":426},{"style":76},[427],{"type":25,"value":428},"=",{"type":20,"tag":69,"props":430,"children":431},{"style":94},[432],{"type":25,"value":108},{"type":20,"tag":69,"props":434,"children":435},{"class":71,"line":168},[436,441,445,449,454,459,463,468,472,476,480,485,489,493,497,502],{"type":20,"tag":69,"props":437,"children":438},{"style":82},[439],{"type":25,"value":440},"        typeof",{"type":20,"tag":69,"props":442,"children":443},{"style":94},[444],{"type":25,"value":189},{"type":20,"tag":69,"props":446,"children":447},{"style":120},[448],{"type":25,"value":149},{"type":20,"tag":69,"props":450,"children":451},{"style":94},[452],{"type":25,"value":453},"), ",{"type":20,"tag":69,"props":455,"children":456},{"style":82},[457],{"type":25,"value":458},"typeof",{"type":20,"tag":69,"props":460,"children":461},{"style":94},[462],{"type":25,"value":189},{"type":20,"tag":69,"props":464,"children":465},{"style":120},[466],{"type":25,"value":467},"long",{"type":20,"tag":69,"props":469,"children":470},{"style":94},[471],{"type":25,"value":453},{"type":20,"tag":69,"props":473,"children":474},{"style":82},[475],{"type":25,"value":458},{"type":20,"tag":69,"props":477,"children":478},{"style":94},[479],{"type":25,"value":189},{"type":20,"tag":69,"props":481,"children":482},{"style":120},[483],{"type":25,"value":484},"short",{"type":20,"tag":69,"props":486,"children":487},{"style":94},[488],{"type":25,"value":453},{"type":20,"tag":69,"props":490,"children":491},{"style":82},[492],{"type":25,"value":458},{"type":20,"tag":69,"props":494,"children":495},{"style":94},[496],{"type":25,"value":189},{"type":20,"tag":69,"props":498,"children":499},{"style":120},[500],{"type":25,"value":501},"byte",{"type":20,"tag":69,"props":503,"children":504},{"style":94},[505],{"type":25,"value":506},"),\n",{"type":20,"tag":69,"props":508,"children":509},{"class":71,"line":213},[510,514,518,523,527,531,535,540,544,548,552,557,561,565,569,574],{"type":20,"tag":69,"props":511,"children":512},{"style":82},[513],{"type":25,"value":440},{"type":20,"tag":69,"props":515,"children":516},{"style":94},[517],{"type":25,"value":189},{"type":20,"tag":69,"props":519,"children":520},{"style":120},[521],{"type":25,"value":522},"uint",{"type":20,"tag":69,"props":524,"children":525},{"style":94},[526],{"type":25,"value":453},{"type":20,"tag":69,"props":528,"children":529},{"style":82},[530],{"type":25,"value":458},{"type":20,"tag":69,"props":532,"children":533},{"style":94},[534],{"type":25,"value":189},{"type":20,"tag":69,"props":536,"children":537},{"style":120},[538],{"type":25,"value":539},"ulong",{"type":20,"tag":69,"props":541,"children":542},{"style":94},[543],{"type":25,"value":453},{"type":20,"tag":69,"props":545,"children":546},{"style":82},[547],{"type":25,"value":458},{"type":20,"tag":69,"props":549,"children":550},{"style":94},[551],{"type":25,"value":189},{"type":20,"tag":69,"props":553,"children":554},{"style":120},[555],{"type":25,"value":556},"ushort",{"type":20,"tag":69,"props":558,"children":559},{"style":94},[560],{"type":25,"value":453},{"type":20,"tag":69,"props":562,"children":563},{"style":82},[564],{"type":25,"value":458},{"type":20,"tag":69,"props":566,"children":567},{"style":94},[568],{"type":25,"value":189},{"type":20,"tag":69,"props":570,"children":571},{"style":100},[572],{"type":25,"value":573},"Guid",{"type":20,"tag":69,"props":575,"children":576},{"style":94},[577],{"type":25,"value":578},")\n",{"type":20,"tag":69,"props":580,"children":581},{"class":71,"line":222},[582],{"type":20,"tag":69,"props":583,"children":584},{"style":94},[585],{"type":25,"value":586},"    };\n",{"type":20,"tag":69,"props":588,"children":590},{"class":71,"line":589},6,[591],{"type":20,"tag":69,"props":592,"children":594},{"emptyLinePlaceholder":593},true,[595],{"type":25,"value":596},"\n",{"type":20,"tag":69,"props":598,"children":600},{"class":71,"line":599},7,[601,605,610,615,619,624,629,634,639,644],{"type":20,"tag":69,"props":602,"children":603},{"style":76},[604],{"type":25,"value":117},{"type":20,"tag":69,"props":606,"children":607},{"style":120},[608],{"type":25,"value":609}," bool",{"type":20,"tag":69,"props":611,"children":612},{"style":126},[613],{"type":25,"value":614}," BindModel",{"type":20,"tag":69,"props":616,"children":617},{"style":94},[618],{"type":25,"value":189},{"type":20,"tag":69,"props":620,"children":621},{"style":100},[622],{"type":25,"value":623},"HttpActionContext",{"type":20,"tag":69,"props":625,"children":626},{"style":157},[627],{"type":25,"value":628}," actionContext",{"type":20,"tag":69,"props":630,"children":631},{"style":94},[632],{"type":25,"value":633},", ",{"type":20,"tag":69,"props":635,"children":636},{"style":100},[637],{"type":25,"value":638},"ModelBindingContext",{"type":20,"tag":69,"props":640,"children":641},{"style":157},[642],{"type":25,"value":643}," bindingContext",{"type":20,"tag":69,"props":645,"children":646},{"style":94},[647],{"type":25,"value":165},{"type":20,"tag":69,"props":649,"children":651},{"class":71,"line":650},8,[652,657,662,667,672,677,683,688,693,699],{"type":20,"tag":69,"props":653,"children":654},{"style":82},[655],{"type":25,"value":656},"        if",{"type":20,"tag":69,"props":658,"children":659},{"style":94},[660],{"type":25,"value":661}," (",{"type":20,"tag":69,"props":663,"children":664},{"style":76},[665],{"type":25,"value":666},"!",{"type":20,"tag":69,"props":668,"children":669},{"style":126},[670],{"type":25,"value":671},"IsSupportedModelType",{"type":20,"tag":69,"props":673,"children":674},{"style":94},[675],{"type":25,"value":676},"(bindingContext.",{"type":20,"tag":69,"props":678,"children":680},{"style":679},"--shiki-default:#35A77C;--shiki-dark:#F8F8F2",[681],{"type":25,"value":682},"ModelType",{"type":20,"tag":69,"props":684,"children":685},{"style":94},[686],{"type":25,"value":687},")) ",{"type":20,"tag":69,"props":689,"children":690},{"style":82},[691],{"type":25,"value":692},"return",{"type":20,"tag":69,"props":694,"children":696},{"style":695},"--shiki-default:#DF69BA;--shiki-dark:#BD93F9",[697],{"type":25,"value":698}," false",{"type":20,"tag":69,"props":700,"children":701},{"style":94},[702],{"type":25,"value":703},";\n",{"type":20,"tag":69,"props":705,"children":707},{"class":71,"line":706},9,[708,713,718,722,727,732,737,742,746,751],{"type":20,"tag":69,"props":709,"children":710},{"style":120},[711],{"type":25,"value":712},"        var",{"type":20,"tag":69,"props":714,"children":715},{"style":94},[716],{"type":25,"value":717}," valueProviderResult ",{"type":20,"tag":69,"props":719,"children":720},{"style":76},[721],{"type":25,"value":428},{"type":20,"tag":69,"props":723,"children":724},{"style":94},[725],{"type":25,"value":726}," bindingContext.",{"type":20,"tag":69,"props":728,"children":729},{"style":679},[730],{"type":25,"value":731},"ValueProvider",{"type":20,"tag":69,"props":733,"children":734},{"style":94},[735],{"type":25,"value":736},".",{"type":20,"tag":69,"props":738,"children":739},{"style":126},[740],{"type":25,"value":741},"GetValue",{"type":20,"tag":69,"props":743,"children":744},{"style":94},[745],{"type":25,"value":676},{"type":20,"tag":69,"props":747,"children":748},{"style":679},[749],{"type":25,"value":750},"ModelName",{"type":20,"tag":69,"props":752,"children":753},{"style":94},[754],{"type":25,"value":755},");\n",{"type":20,"tag":69,"props":757,"children":759},{"class":71,"line":758},10,[760,764,769,773,778,783,787],{"type":20,"tag":69,"props":761,"children":762},{"style":120},[763],{"type":25,"value":712},{"type":20,"tag":69,"props":765,"children":766},{"style":94},[767],{"type":25,"value":768}," stringArray ",{"type":20,"tag":69,"props":770,"children":771},{"style":76},[772],{"type":25,"value":428},{"type":20,"tag":69,"props":774,"children":775},{"style":94},[776],{"type":25,"value":777}," valueProviderResult",{"type":20,"tag":69,"props":779,"children":780},{"style":76},[781],{"type":25,"value":782},"?",{"type":20,"tag":69,"props":784,"children":785},{"style":94},[786],{"type":25,"value":736},{"type":20,"tag":69,"props":788,"children":789},{"style":679},[790],{"type":25,"value":791},"AttemptedValue\n",{"type":20,"tag":69,"props":793,"children":795},{"class":71,"line":794},11,[796,801,805,810,814,819,824,830,835,839,844,849],{"type":20,"tag":69,"props":797,"children":798},{"style":76},[799],{"type":25,"value":800},"            ?",{"type":20,"tag":69,"props":802,"children":803},{"style":94},[804],{"type":25,"value":736},{"type":20,"tag":69,"props":806,"children":807},{"style":126},[808],{"type":25,"value":809},"Split",{"type":20,"tag":69,"props":811,"children":812},{"style":94},[813],{"type":25,"value":189},{"type":20,"tag":69,"props":815,"children":816},{"style":82},[817],{"type":25,"value":818},"new",{"type":20,"tag":69,"props":820,"children":821},{"style":94},[822],{"type":25,"value":823},"[] { ",{"type":20,"tag":69,"props":825,"children":827},{"style":826},"--shiki-default:#5C6A72;--shiki-dark:#F1FA8C",[828],{"type":25,"value":829},"'",{"type":20,"tag":69,"props":831,"children":832},{"style":198},[833],{"type":25,"value":834},",",{"type":20,"tag":69,"props":836,"children":837},{"style":826},[838],{"type":25,"value":829},{"type":20,"tag":69,"props":840,"children":841},{"style":94},[842],{"type":25,"value":843}," }, StringSplitOptions.",{"type":20,"tag":69,"props":845,"children":846},{"style":679},[847],{"type":25,"value":848},"RemoveEmptyEntries",{"type":20,"tag":69,"props":850,"children":851},{"style":94},[852],{"type":25,"value":755},{"type":20,"tag":69,"props":854,"children":856},{"class":71,"line":855},12,[857,861,866,871,876,881,885,889],{"type":20,"tag":69,"props":858,"children":859},{"style":82},[860],{"type":25,"value":656},{"type":20,"tag":69,"props":862,"children":863},{"style":94},[864],{"type":25,"value":865}," (stringArray ",{"type":20,"tag":69,"props":867,"children":868},{"style":76},[869],{"type":25,"value":870},"==",{"type":20,"tag":69,"props":872,"children":873},{"style":695},[874],{"type":25,"value":875}," null",{"type":20,"tag":69,"props":877,"children":878},{"style":94},[879],{"type":25,"value":880},") ",{"type":20,"tag":69,"props":882,"children":883},{"style":82},[884],{"type":25,"value":692},{"type":20,"tag":69,"props":886,"children":887},{"style":695},[888],{"type":25,"value":698},{"type":20,"tag":69,"props":890,"children":891},{"style":94},[892],{"type":25,"value":703},{"type":20,"tag":69,"props":894,"children":896},{"class":71,"line":895},13,[897,901,906,910,914,918,922,927],{"type":20,"tag":69,"props":898,"children":899},{"style":120},[900],{"type":25,"value":712},{"type":20,"tag":69,"props":902,"children":903},{"style":94},[904],{"type":25,"value":905}," elementType ",{"type":20,"tag":69,"props":907,"children":908},{"style":76},[909],{"type":25,"value":428},{"type":20,"tag":69,"props":911,"children":912},{"style":94},[913],{"type":25,"value":726},{"type":20,"tag":69,"props":915,"children":916},{"style":679},[917],{"type":25,"value":682},{"type":20,"tag":69,"props":919,"children":920},{"style":94},[921],{"type":25,"value":736},{"type":20,"tag":69,"props":923,"children":924},{"style":126},[925],{"type":25,"value":926},"GetElementType",{"type":20,"tag":69,"props":928,"children":929},{"style":94},[930],{"type":25,"value":931},"();\n",{"type":20,"tag":69,"props":933,"children":935},{"class":71,"line":934},14,[936,940,945,949,953,957,961,965],{"type":20,"tag":69,"props":937,"children":938},{"style":82},[939],{"type":25,"value":656},{"type":20,"tag":69,"props":941,"children":942},{"style":94},[943],{"type":25,"value":944}," (elementType ",{"type":20,"tag":69,"props":946,"children":947},{"style":76},[948],{"type":25,"value":870},{"type":20,"tag":69,"props":950,"children":951},{"style":695},[952],{"type":25,"value":875},{"type":20,"tag":69,"props":954,"children":955},{"style":94},[956],{"type":25,"value":880},{"type":20,"tag":69,"props":958,"children":959},{"style":82},[960],{"type":25,"value":692},{"type":20,"tag":69,"props":962,"children":963},{"style":695},[964],{"type":25,"value":698},{"type":20,"tag":69,"props":966,"children":967},{"style":94},[968],{"type":25,"value":703},{"type":20,"tag":69,"props":970,"children":972},{"class":71,"line":971},15,[973],{"type":20,"tag":69,"props":974,"children":975},{"emptyLinePlaceholder":593},[976],{"type":25,"value":596},{"type":20,"tag":69,"props":978,"children":980},{"class":71,"line":979},16,[981,986,991,996,1001],{"type":20,"tag":69,"props":982,"children":983},{"style":94},[984],{"type":25,"value":985},"        bindingContext.",{"type":20,"tag":69,"props":987,"children":988},{"style":679},[989],{"type":25,"value":990},"Model",{"type":20,"tag":69,"props":992,"children":993},{"style":76},[994],{"type":25,"value":995}," =",{"type":20,"tag":69,"props":997,"children":998},{"style":126},[999],{"type":25,"value":1000}," CopyAndConvertArray",{"type":20,"tag":69,"props":1002,"children":1003},{"style":94},[1004],{"type":25,"value":1005},"(stringArray, elementType);\n",{"type":20,"tag":69,"props":1007,"children":1009},{"class":71,"line":1008},17,[1010,1014,1019],{"type":20,"tag":69,"props":1011,"children":1012},{"style":82},[1013],{"type":25,"value":174},{"type":20,"tag":69,"props":1015,"children":1016},{"style":695},[1017],{"type":25,"value":1018}," true",{"type":20,"tag":69,"props":1020,"children":1021},{"style":94},[1022],{"type":25,"value":703},{"type":20,"tag":69,"props":1024,"children":1026},{"class":71,"line":1025},18,[1027],{"type":20,"tag":69,"props":1028,"children":1029},{"style":94},[1030],{"type":25,"value":219},{"type":20,"tag":69,"props":1032,"children":1034},{"class":71,"line":1033},19,[1035],{"type":20,"tag":69,"props":1036,"children":1037},{"emptyLinePlaceholder":593},[1038],{"type":25,"value":596},{"type":20,"tag":69,"props":1040,"children":1042},{"class":71,"line":1041},20,[1043,1047,1051,1056,1060,1064,1069,1074,1079,1084,1089,1093,1098,1103],{"type":20,"tag":69,"props":1044,"children":1045},{"style":76},[1046],{"type":25,"value":403},{"type":20,"tag":69,"props":1048,"children":1049},{"style":76},[1050],{"type":25,"value":408},{"type":20,"tag":69,"props":1052,"children":1053},{"style":100},[1054],{"type":25,"value":1055}," Array",{"type":20,"tag":69,"props":1057,"children":1058},{"style":126},[1059],{"type":25,"value":1000},{"type":20,"tag":69,"props":1061,"children":1062},{"style":94},[1063],{"type":25,"value":189},{"type":20,"tag":69,"props":1065,"children":1066},{"style":100},[1067],{"type":25,"value":1068},"IReadOnlyList",{"type":20,"tag":69,"props":1070,"children":1071},{"style":94},[1072],{"type":25,"value":1073},"\u003C",{"type":20,"tag":69,"props":1075,"children":1076},{"style":120},[1077],{"type":25,"value":1078},"string",{"type":20,"tag":69,"props":1080,"children":1081},{"style":94},[1082],{"type":25,"value":1083},"> ",{"type":20,"tag":69,"props":1085,"children":1086},{"style":157},[1087],{"type":25,"value":1088},"sourceArray",{"type":20,"tag":69,"props":1090,"children":1091},{"style":94},[1092],{"type":25,"value":633},{"type":20,"tag":69,"props":1094,"children":1095},{"style":100},[1096],{"type":25,"value":1097},"Type",{"type":20,"tag":69,"props":1099,"children":1100},{"style":157},[1101],{"type":25,"value":1102}," elementType",{"type":20,"tag":69,"props":1104,"children":1105},{"style":94},[1106],{"type":25,"value":165},{"type":20,"tag":69,"props":1108,"children":1110},{"class":71,"line":1109},21,[1111,1115,1120,1124,1129,1134,1139,1144],{"type":20,"tag":69,"props":1112,"children":1113},{"style":120},[1114],{"type":25,"value":712},{"type":20,"tag":69,"props":1116,"children":1117},{"style":94},[1118],{"type":25,"value":1119}," targetArray ",{"type":20,"tag":69,"props":1121,"children":1122},{"style":76},[1123],{"type":25,"value":428},{"type":20,"tag":69,"props":1125,"children":1126},{"style":94},[1127],{"type":25,"value":1128}," Array.",{"type":20,"tag":69,"props":1130,"children":1131},{"style":126},[1132],{"type":25,"value":1133},"CreateInstance",{"type":20,"tag":69,"props":1135,"children":1136},{"style":94},[1137],{"type":25,"value":1138},"(elementType, sourceArray.",{"type":20,"tag":69,"props":1140,"children":1141},{"style":679},[1142],{"type":25,"value":1143},"Count",{"type":20,"tag":69,"props":1145,"children":1146},{"style":94},[1147],{"type":25,"value":755},{"type":20,"tag":69,"props":1149,"children":1151},{"class":71,"line":1150},22,[1152,1156,1161,1165,1170,1175],{"type":20,"tag":69,"props":1153,"children":1154},{"style":82},[1155],{"type":25,"value":656},{"type":20,"tag":69,"props":1157,"children":1158},{"style":94},[1159],{"type":25,"value":1160}," (sourceArray.",{"type":20,"tag":69,"props":1162,"children":1163},{"style":679},[1164],{"type":25,"value":1143},{"type":20,"tag":69,"props":1166,"children":1167},{"style":76},[1168],{"type":25,"value":1169}," >",{"type":20,"tag":69,"props":1171,"children":1172},{"style":695},[1173],{"type":25,"value":1174}," 0",{"type":20,"tag":69,"props":1176,"children":1177},{"style":94},[1178],{"type":25,"value":165},{"type":20,"tag":69,"props":1180,"children":1182},{"class":71,"line":1181},23,[1183,1188,1193,1197,1202,1207],{"type":20,"tag":69,"props":1184,"children":1185},{"style":120},[1186],{"type":25,"value":1187},"            var",{"type":20,"tag":69,"props":1189,"children":1190},{"style":94},[1191],{"type":25,"value":1192}," converter ",{"type":20,"tag":69,"props":1194,"children":1195},{"style":76},[1196],{"type":25,"value":428},{"type":20,"tag":69,"props":1198,"children":1199},{"style":94},[1200],{"type":25,"value":1201}," TypeDescriptor.",{"type":20,"tag":69,"props":1203,"children":1204},{"style":126},[1205],{"type":25,"value":1206},"GetConverter",{"type":20,"tag":69,"props":1208,"children":1209},{"style":94},[1210],{"type":25,"value":1211},"(elementType);\n",{"type":20,"tag":69,"props":1213,"children":1215},{"class":71,"line":1214},24,[1216,1221,1225,1230,1235,1239,1243,1248,1252,1257,1261,1266,1271],{"type":20,"tag":69,"props":1217,"children":1218},{"style":82},[1219],{"type":25,"value":1220},"            for",{"type":20,"tag":69,"props":1222,"children":1223},{"style":94},[1224],{"type":25,"value":661},{"type":20,"tag":69,"props":1226,"children":1227},{"style":120},[1228],{"type":25,"value":1229},"var",{"type":20,"tag":69,"props":1231,"children":1232},{"style":94},[1233],{"type":25,"value":1234}," i ",{"type":20,"tag":69,"props":1236,"children":1237},{"style":76},[1238],{"type":25,"value":428},{"type":20,"tag":69,"props":1240,"children":1241},{"style":695},[1242],{"type":25,"value":1174},{"type":20,"tag":69,"props":1244,"children":1245},{"style":94},[1246],{"type":25,"value":1247},"; i ",{"type":20,"tag":69,"props":1249,"children":1250},{"style":76},[1251],{"type":25,"value":1073},{"type":20,"tag":69,"props":1253,"children":1254},{"style":94},[1255],{"type":25,"value":1256}," sourceArray.",{"type":20,"tag":69,"props":1258,"children":1259},{"style":679},[1260],{"type":25,"value":1143},{"type":20,"tag":69,"props":1262,"children":1263},{"style":94},[1264],{"type":25,"value":1265},"; i",{"type":20,"tag":69,"props":1267,"children":1268},{"style":76},[1269],{"type":25,"value":1270},"++",{"type":20,"tag":69,"props":1272,"children":1273},{"style":94},[1274],{"type":25,"value":578},{"type":20,"tag":69,"props":1276,"children":1278},{"class":71,"line":1277},25,[1279,1284,1289,1294,1299,1303,1307],{"type":20,"tag":69,"props":1280,"children":1281},{"style":94},[1282],{"type":25,"value":1283},"                targetArray.",{"type":20,"tag":69,"props":1285,"children":1286},{"style":126},[1287],{"type":25,"value":1288},"SetValue",{"type":20,"tag":69,"props":1290,"children":1291},{"style":94},[1292],{"type":25,"value":1293},"(converter.",{"type":20,"tag":69,"props":1295,"children":1296},{"style":126},[1297],{"type":25,"value":1298},"ConvertFromString",{"type":20,"tag":69,"props":1300,"children":1301},{"style":94},[1302],{"type":25,"value":189},{"type":20,"tag":69,"props":1304,"children":1305},{"style":679},[1306],{"type":25,"value":1088},{"type":20,"tag":69,"props":1308,"children":1309},{"style":94},[1310],{"type":25,"value":1311},"[i]), i);\n",{"type":20,"tag":69,"props":1313,"children":1315},{"class":71,"line":1314},26,[1316],{"type":20,"tag":69,"props":1317,"children":1318},{"style":94},[1319],{"type":25,"value":1320},"        }\n",{"type":20,"tag":69,"props":1322,"children":1324},{"class":71,"line":1323},27,[1325,1329],{"type":20,"tag":69,"props":1326,"children":1327},{"style":82},[1328],{"type":25,"value":174},{"type":20,"tag":69,"props":1330,"children":1331},{"style":94},[1332],{"type":25,"value":1333}," targetArray;\n",{"type":20,"tag":69,"props":1335,"children":1337},{"class":71,"line":1336},28,[1338],{"type":20,"tag":69,"props":1339,"children":1340},{"style":94},[1341],{"type":25,"value":219},{"type":20,"tag":69,"props":1343,"children":1345},{"class":71,"line":1344},29,[1346],{"type":20,"tag":69,"props":1347,"children":1348},{"emptyLinePlaceholder":593},[1349],{"type":25,"value":596},{"type":20,"tag":69,"props":1351,"children":1353},{"class":71,"line":1352},30,[1354,1359,1363,1367,1372,1376,1380,1385],{"type":20,"tag":69,"props":1355,"children":1356},{"style":76},[1357],{"type":25,"value":1358},"    internal",{"type":20,"tag":69,"props":1360,"children":1361},{"style":76},[1362],{"type":25,"value":408},{"type":20,"tag":69,"props":1364,"children":1365},{"style":120},[1366],{"type":25,"value":609},{"type":20,"tag":69,"props":1368,"children":1369},{"style":126},[1370],{"type":25,"value":1371}," IsSupportedModelType",{"type":20,"tag":69,"props":1373,"children":1374},{"style":94},[1375],{"type":25,"value":189},{"type":20,"tag":69,"props":1377,"children":1378},{"style":100},[1379],{"type":25,"value":1097},{"type":20,"tag":69,"props":1381,"children":1382},{"style":157},[1383],{"type":25,"value":1384}," modelType",{"type":20,"tag":69,"props":1386,"children":1387},{"style":94},[1388],{"type":25,"value":165},{"type":20,"tag":69,"props":1390,"children":1392},{"class":71,"line":1391},31,[1393,1397,1402,1407,1412,1416,1421,1426,1430],{"type":20,"tag":69,"props":1394,"children":1395},{"style":82},[1396],{"type":25,"value":174},{"type":20,"tag":69,"props":1398,"children":1399},{"style":94},[1400],{"type":25,"value":1401}," modelType.",{"type":20,"tag":69,"props":1403,"children":1404},{"style":679},[1405],{"type":25,"value":1406},"IsArray",{"type":20,"tag":69,"props":1408,"children":1409},{"style":76},[1410],{"type":25,"value":1411}," &&",{"type":20,"tag":69,"props":1413,"children":1414},{"style":94},[1415],{"type":25,"value":1401},{"type":20,"tag":69,"props":1417,"children":1418},{"style":126},[1419],{"type":25,"value":1420},"GetArrayRank",{"type":20,"tag":69,"props":1422,"children":1423},{"style":94},[1424],{"type":25,"value":1425},"() ",{"type":20,"tag":69,"props":1427,"children":1428},{"style":76},[1429],{"type":25,"value":870},{"type":20,"tag":69,"props":1431,"children":1432},{"style":695},[1433],{"type":25,"value":1434}," 1\n",{"type":20,"tag":69,"props":1436,"children":1438},{"class":71,"line":1437},32,[1439,1444,1448],{"type":20,"tag":69,"props":1440,"children":1441},{"style":76},[1442],{"type":25,"value":1443},"                &&",{"type":20,"tag":69,"props":1445,"children":1446},{"style":94},[1447],{"type":25,"value":1401},{"type":20,"tag":69,"props":1449,"children":1450},{"style":679},[1451],{"type":25,"value":1452},"HasElementType\n",{"type":20,"tag":69,"props":1454,"children":1456},{"class":71,"line":1455},33,[1457,1461,1466,1471,1476,1480],{"type":20,"tag":69,"props":1458,"children":1459},{"style":76},[1460],{"type":25,"value":1443},{"type":20,"tag":69,"props":1462,"children":1463},{"style":94},[1464],{"type":25,"value":1465}," supportedElementTypes.",{"type":20,"tag":69,"props":1467,"children":1468},{"style":126},[1469],{"type":25,"value":1470},"Contains",{"type":20,"tag":69,"props":1472,"children":1473},{"style":94},[1474],{"type":25,"value":1475},"(modelType.",{"type":20,"tag":69,"props":1477,"children":1478},{"style":126},[1479],{"type":25,"value":926},{"type":20,"tag":69,"props":1481,"children":1482},{"style":94},[1483],{"type":25,"value":1484},"());\n",{"type":20,"tag":69,"props":1486,"children":1488},{"class":71,"line":1487},34,[1489],{"type":20,"tag":69,"props":1490,"children":1491},{"style":94},[1492],{"type":25,"value":219},{"type":20,"tag":69,"props":1494,"children":1496},{"class":71,"line":1495},35,[1497],{"type":20,"tag":69,"props":1498,"children":1499},{"emptyLinePlaceholder":593},[1500],{"type":25,"value":596},{"type":20,"tag":69,"props":1502,"children":1504},{"class":71,"line":1503},36,[1505],{"type":20,"tag":69,"props":1506,"children":1507},{"style":94},[1508],{"type":25,"value":228},{"type":20,"tag":69,"props":1510,"children":1512},{"class":71,"line":1511},37,[1513],{"type":20,"tag":69,"props":1514,"children":1515},{"emptyLinePlaceholder":593},[1516],{"type":25,"value":596},{"type":20,"tag":69,"props":1518,"children":1520},{"class":71,"line":1519},38,[1521,1525,1529,1534,1538,1543],{"type":20,"tag":69,"props":1522,"children":1523},{"style":76},[1524],{"type":25,"value":79},{"type":20,"tag":69,"props":1526,"children":1527},{"style":82},[1528],{"type":25,"value":85},{"type":20,"tag":69,"props":1530,"children":1531},{"style":88},[1532],{"type":25,"value":1533}," CommaSeparatedArrayModelBinderProvider",{"type":20,"tag":69,"props":1535,"children":1536},{"style":94},[1537],{"type":25,"value":97},{"type":20,"tag":69,"props":1539,"children":1540},{"style":100},[1541],{"type":25,"value":1542},"ModelBinderProvider",{"type":20,"tag":69,"props":1544,"children":1545},{"style":94},[1546],{"type":25,"value":108},{"type":20,"tag":69,"props":1548,"children":1550},{"class":71,"line":1549},39,[1551,1555,1560,1565,1570,1574,1579,1584,1588,1592,1596],{"type":20,"tag":69,"props":1552,"children":1553},{"style":76},[1554],{"type":25,"value":117},{"type":20,"tag":69,"props":1556,"children":1557},{"style":76},[1558],{"type":25,"value":1559}," override",{"type":20,"tag":69,"props":1561,"children":1562},{"style":100},[1563],{"type":25,"value":1564}," IModelBinder",{"type":20,"tag":69,"props":1566,"children":1567},{"style":126},[1568],{"type":25,"value":1569}," GetBinder",{"type":20,"tag":69,"props":1571,"children":1572},{"style":94},[1573],{"type":25,"value":189},{"type":20,"tag":69,"props":1575,"children":1576},{"style":100},[1577],{"type":25,"value":1578},"HttpConfiguration",{"type":20,"tag":69,"props":1580,"children":1581},{"style":157},[1582],{"type":25,"value":1583}," configuration",{"type":20,"tag":69,"props":1585,"children":1586},{"style":94},[1587],{"type":25,"value":633},{"type":20,"tag":69,"props":1589,"children":1590},{"style":100},[1591],{"type":25,"value":1097},{"type":20,"tag":69,"props":1593,"children":1594},{"style":157},[1595],{"type":25,"value":1384},{"type":20,"tag":69,"props":1597,"children":1598},{"style":94},[1599],{"type":25,"value":165},{"type":20,"tag":69,"props":1601,"children":1603},{"class":71,"line":1602},40,[1604,1608,1613,1617],{"type":20,"tag":69,"props":1605,"children":1606},{"style":82},[1607],{"type":25,"value":174},{"type":20,"tag":69,"props":1609,"children":1610},{"style":94},[1611],{"type":25,"value":1612}," CommaSeparatedArrayModelBinder.",{"type":20,"tag":69,"props":1614,"children":1615},{"style":126},[1616],{"type":25,"value":671},{"type":20,"tag":69,"props":1618,"children":1619},{"style":94},[1620],{"type":25,"value":1621},"(modelType)\n",{"type":20,"tag":69,"props":1623,"children":1625},{"class":71,"line":1624},41,[1626,1630,1635,1639,1643,1648,1652],{"type":20,"tag":69,"props":1627,"children":1628},{"style":76},[1629],{"type":25,"value":800},{"type":20,"tag":69,"props":1631,"children":1632},{"style":82},[1633],{"type":25,"value":1634}," new",{"type":20,"tag":69,"props":1636,"children":1637},{"style":100},[1638],{"type":25,"value":382},{"type":20,"tag":69,"props":1640,"children":1641},{"style":94},[1642],{"type":25,"value":1425},{"type":20,"tag":69,"props":1644,"children":1645},{"style":76},[1646],{"type":25,"value":1647},":",{"type":20,"tag":69,"props":1649,"children":1650},{"style":695},[1651],{"type":25,"value":875},{"type":20,"tag":69,"props":1653,"children":1654},{"style":94},[1655],{"type":25,"value":703},{"type":20,"tag":69,"props":1657,"children":1659},{"class":71,"line":1658},42,[1660],{"type":20,"tag":69,"props":1661,"children":1662},{"style":94},[1663],{"type":25,"value":219},{"type":20,"tag":69,"props":1665,"children":1667},{"class":71,"line":1666},43,[1668],{"type":20,"tag":69,"props":1669,"children":1670},{"style":94},[1671],{"type":25,"value":228},{"type":20,"tag":333,"props":1673,"children":1675},{"id":1674},"to-register",[1676],{"type":25,"value":1677},"To register",{"type":20,"tag":21,"props":1679,"children":1680},{},[1681,1683,1689],{"type":25,"value":1682},"It's necessary to register ModelBinderProviders with your ASP.NET application at start-up - usually in the ",{"type":20,"tag":28,"props":1684,"children":1686},{"className":1685},[],[1687],{"type":25,"value":1688},"WebApiConfig.cs",{"type":25,"value":1690}," file.",{"type":20,"tag":58,"props":1692,"children":1694},{"className":60,"code":1693,"language":62,"meta":63,"style":63},"public static class WebApiConfig {\n    public static void Register(HttpConfiguration config) {\n        // All your usual configuration up here\n        config.Services.Insert(typeof(ModelBinderProvider), 0, new CommaSeparatedArrayModelBinderProvider());\n    }\n}\n",[1695],{"type":20,"tag":28,"props":1696,"children":1697},{"__ignoreMap":63},[1698,1722,1760,1769,1832,1839],{"type":20,"tag":69,"props":1699,"children":1700},{"class":71,"line":72},[1701,1705,1709,1713,1718],{"type":20,"tag":69,"props":1702,"children":1703},{"style":76},[1704],{"type":25,"value":79},{"type":20,"tag":69,"props":1706,"children":1707},{"style":76},[1708],{"type":25,"value":408},{"type":20,"tag":69,"props":1710,"children":1711},{"style":82},[1712],{"type":25,"value":85},{"type":20,"tag":69,"props":1714,"children":1715},{"style":88},[1716],{"type":25,"value":1717}," WebApiConfig",{"type":20,"tag":69,"props":1719,"children":1720},{"style":94},[1721],{"type":25,"value":108},{"type":20,"tag":69,"props":1723,"children":1724},{"class":71,"line":111},[1725,1729,1733,1738,1743,1747,1751,1756],{"type":20,"tag":69,"props":1726,"children":1727},{"style":76},[1728],{"type":25,"value":117},{"type":20,"tag":69,"props":1730,"children":1731},{"style":76},[1732],{"type":25,"value":408},{"type":20,"tag":69,"props":1734,"children":1735},{"style":120},[1736],{"type":25,"value":1737}," void",{"type":20,"tag":69,"props":1739,"children":1740},{"style":126},[1741],{"type":25,"value":1742}," Register",{"type":20,"tag":69,"props":1744,"children":1745},{"style":94},[1746],{"type":25,"value":189},{"type":20,"tag":69,"props":1748,"children":1749},{"style":100},[1750],{"type":25,"value":1578},{"type":20,"tag":69,"props":1752,"children":1753},{"style":157},[1754],{"type":25,"value":1755}," config",{"type":20,"tag":69,"props":1757,"children":1758},{"style":94},[1759],{"type":25,"value":165},{"type":20,"tag":69,"props":1761,"children":1762},{"class":71,"line":168},[1763],{"type":20,"tag":69,"props":1764,"children":1766},{"style":1765},"--shiki-default:#939F91;--shiki-default-font-style:italic;--shiki-dark:#6272A4;--shiki-dark-font-style:inherit",[1767],{"type":25,"value":1768},"        // All your usual configuration up here\n",{"type":20,"tag":69,"props":1770,"children":1771},{"class":71,"line":213},[1772,1777,1782,1786,1791,1795,1799,1803,1807,1811,1816,1820,1824,1828],{"type":20,"tag":69,"props":1773,"children":1774},{"style":94},[1775],{"type":25,"value":1776},"        config.",{"type":20,"tag":69,"props":1778,"children":1779},{"style":679},[1780],{"type":25,"value":1781},"Services",{"type":20,"tag":69,"props":1783,"children":1784},{"style":94},[1785],{"type":25,"value":736},{"type":20,"tag":69,"props":1787,"children":1788},{"style":126},[1789],{"type":25,"value":1790},"Insert",{"type":20,"tag":69,"props":1792,"children":1793},{"style":94},[1794],{"type":25,"value":189},{"type":20,"tag":69,"props":1796,"children":1797},{"style":82},[1798],{"type":25,"value":458},{"type":20,"tag":69,"props":1800,"children":1801},{"style":94},[1802],{"type":25,"value":189},{"type":20,"tag":69,"props":1804,"children":1805},{"style":100},[1806],{"type":25,"value":1542},{"type":20,"tag":69,"props":1808,"children":1809},{"style":94},[1810],{"type":25,"value":453},{"type":20,"tag":69,"props":1812,"children":1813},{"style":695},[1814],{"type":25,"value":1815},"0",{"type":20,"tag":69,"props":1817,"children":1818},{"style":94},[1819],{"type":25,"value":633},{"type":20,"tag":69,"props":1821,"children":1822},{"style":82},[1823],{"type":25,"value":818},{"type":20,"tag":69,"props":1825,"children":1826},{"style":100},[1827],{"type":25,"value":1533},{"type":20,"tag":69,"props":1829,"children":1830},{"style":94},[1831],{"type":25,"value":1484},{"type":20,"tag":69,"props":1833,"children":1834},{"class":71,"line":222},[1835],{"type":20,"tag":69,"props":1836,"children":1837},{"style":94},[1838],{"type":25,"value":219},{"type":20,"tag":69,"props":1840,"children":1841},{"class":71,"line":589},[1842],{"type":20,"tag":69,"props":1843,"children":1844},{"style":94},[1845],{"type":25,"value":228},{"type":20,"tag":21,"props":1847,"children":1848},{},[1849],{"type":20,"tag":1850,"props":1851,"children":1852},"em",{},[1853],{"type":25,"value":1854},"[)amien",{"type":20,"tag":1856,"props":1857,"children":1858},"style",{},[1859],{"type":25,"value":1860},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":63,"searchDepth":111,"depth":111,"links":1862},[1863,1864],{"id":335,"depth":111,"text":338},{"id":1674,"depth":111,"text":1677},"markdown","content:blog:2018:comma-separated-parameters-webapi.md","content","blog/2018/comma-separated-parameters-webapi.md","blog/2018/comma-separated-parameters-webapi","md","/blog/2018/comma-separated-parameters-webapi/",650,[1874,1878,1882],{"title":1875,"date":1876,"url":1877},"HTML5 Video Cheatsheet: Optimizing videos for the web","2025-12-05T00:00:00Z","/blog/2025/html5-video-cheatsheet/",{"title":1879,"date":1880,"url":1881},"Transactions in the MongoDB EF Core Provider","2025-10-25","/blog/2025/mongodb-explicit-transactions/",{"title":1883,"date":1884,"url":1885},"Queryable Encryption with the MongoDB EF Core Provider","2025-09-22","/blog/2025/mongodb-queryable-encryption/",[1887],{"_path":1888,"_dir":1889,"_draft":6,"_partial":6,"_locale":7,"title":1890,"description":1891,"id":1892,"date":1893,"name":1894,"avatar":1895,"url":1896,"body":1897,"_type":1865,"_id":1927,"_source":1867,"_file":1928,"_stem":1929,"_extension":1870},"/comments/comma-separated-parameters-webapi/620384c2-e030-41fc-be4b-d3cef1002fd5","comma-separated-parameters-webapi","620384c2 E030 41fc Be4b D3cef1002fd5","Hi Damien.","620384c2-e030-41fc-be4b-d3cef1002fd5","2023-11-16T17:17:49.076Z","Andreas","https://www.gravatar.com/avatar/00000000000000000000000000000000?d=mp&f=y","https://aquilasoft.de",{"type":17,"children":1898,"toc":1925},[1899,1903,1916,1921],{"type":20,"tag":21,"props":1900,"children":1901},{},[1902],{"type":25,"value":1891},{"type":20,"tag":21,"props":1904,"children":1905},{},[1906,1908,1914],{"type":25,"value":1907},"I found this solution and followed your GitHub link and noticed that you removed the CommaSeparatedArrayModelBinder when you upgrade to .NET Core 3.1 (",{"type":20,"tag":345,"props":1909,"children":1912},{"href":1910,"rel":1911},"https://github.com/damieng/DamienGKit/commit/aead6fc8fbedab5dfb5ff9ff45393637d7da4951",[349],[1913],{"type":25,"value":1910},{"type":25,"value":1915},").",{"type":20,"tag":21,"props":1917,"children":1918},{},[1919],{"type":25,"value":1920},"Why is that? Is this functionality already included since .NET Core 3.1? If yes, could you point me to where/how to use it? It's not the default behavior and I didn't find anything on the internet besides this and similar blog posts.",{"type":20,"tag":21,"props":1922,"children":1923},{},[1924],{"type":25,"value":1894},{"title":63,"searchDepth":111,"depth":111,"links":1926},[],"content:comments:comma-separated-parameters-webapi:620384c2-e030-41fc-be4b-d3cef1002fd5.md","comments/comma-separated-parameters-webapi/620384c2-e030-41fc-be4b-d3cef1002fd5.md","comments/comma-separated-parameters-webapi/620384c2-e030-41fc-be4b-d3cef1002fd5",1779264581485]