2010-05-16 1 views
2

У меня есть JavaScript Object, obj, который получает передаваемый Mvc действия через $ .post() следующий образом:Как построить C# объекта из FormCollection со сложными ключами

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 в контроллере или сделать привязку модели это для вас.

+0

спасибо. как вы предположили, я закончил тем, что отправил json-строку в действие и написал пользовательское связующее устройство, используя json.net для десериализации запроса. –