Как построить объект C# из FormCollection со сложными ключами

У меня есть объект javascript, obj, который передается действию mvc через $.post() следующим образом:

var obj = {
    Items: [{ Text: "", Value: { Property1: "", Property2: "" },
            { Text: "", Value: { Property1: "", Property2: "" }]
};
$.post('MyAction', obj, function() {});

подпись действия выглядит так:

public ActionResult MyAction(FormCollection collection)
{
}

мне нужно быть в состоянии построить объект из FormCollection, однако я сталкиваюсь с проблемой, где ключи находятся в форме:

"Items[0][Text]"
"Items[0][Value][Property1]"
"Items[0][Value][Property2]"
"Items[1][Text]"
"Items[1][Value][Property1]"
"Items[1][Value][Property2]"

мне интересно, есть ли чистый способ построить нужный объект C# из заданного FormCollection, Я понимаю, что мог бы изменить сигнатуру метода действия, чтобы взять интересующий меня тип объекта, но это представляло свои собственные проблемы.

1 ответ

Решение

Если вы можете изменить сторону javascript, чтобы вместо этого отправлять данные в формате json, я бы подумал, что вы можете либо принять строку и выполнить десериализацию json самостоятельно в контроллере, либо создать связыватель модели, чтобы сделать это для вас.

Другие вопросы по тегам