Ok so it seems that I needed to format the list data using a javascript function before posting it to the server.
<script type=
"text/javascript"
>
var
getUpdateData =
function
(data) {
MultiSelectHelpers.serialize(data);
};
var
MultiSelectHelpers = {
serialize:
function
(data) {
for
(
var
property
in
data) {
if
($.isArray(data[property])) {
this
.serializeArray(property, data[property], data);
}
}
},
serializeArray:
function
(prefix, array, result) {
for
(
var
i = 0; i < array.length; i++) {
if
($.isPlainObject(array[i])) {
for
(
var
property
in
array[i]) {
result[prefix +
"["
+ i +
"]."
+ property] = array[i][property];
}
}
else
{
result[prefix +
"["
+ i +
"]"
] = array[i];
}
}
}
};
</script>
change my helper definition like this:
.Timezone("Etc/UTC")
.DataSource(
d =>
{
d.Model(m=>
{
m.Id(i=>i.Id);
});
d.Read(r => r.Action("ReadEvents", "Outage", new { Area = "GatewayManagement" }).Type(HttpVerbs.Post));
d.Update(u => u.Action("UpdateEvent", "Outage", new { Area = "GatewayManagement" }).Data("getUpdateData").Type(HttpVerbs.Post));
d.Destroy(u => u.Action("DestroyEvent", "Outage", new { Area = "GatewayManagement" }).Data("getUpdateData").Type(HttpVerbs.Post));
d.Create(u => u.Action("CreateEvent", "Outage", new { Area = "GatewayManagement" }).Data("getUpdateData").Type(HttpVerbs.Post));
}
Then the server binds the List<string> properly. Not really sure why this is needed. But came across this:
http://stackoverflow.com/questions/16142746/kendo-ui-multiselect-post-binded-values-to-the-controller