Определить подобъект по заданной строке префикса, как это делает TryUpdateModel () - PullRequest
0 голосов
/ 14 января 2010

У меня есть сложный объект ViewModel, используемый в базовом классе контроллера. Для простоты это выглядит так:

public class FruitBowl
{
    public Apple[] apples;
    public Banana[] bananas;
}

public class Apple
{
    public string appleType;
}

Теперь, если я позвоню TryUpdateModel(myFruitBowlObj, "apples[0]"), механизм связывания определит, что это первое яблоко в массиве, которое должно быть обновлено из данных POST. С другой стороны, я мог бы отправить данные POST на мой контроллер, где поля формы были названы по схеме «apple [0] .appleType», и просто вызвать TryUpdateModel(myFruitBowlObj), и это правильно обновит первое яблоко.

У меня вопрос: какой самый простой способ получить ссылку на apple [0] от myFruitBowlObj, учитывая строку префикса «apple [0]»? Я могу проследить, как TryUpdateModel() делает это, но это сложно и использует много защищенных методов. Есть ли какая-то логика привязки модели, к которой я могу получить доступ где-то, что я пропускаю, или мне нужно сделать это вручную с помощью отражения?

1 Ответ

1 голос
/ 14 января 2010

Лучше всего использовать рефлексию вручную.

Я пытался вырвать кусочки из связующего устройства модели, и всегда было так: «Хорошо, теперь мне нужно это, хорошо, теперь мне нужно это, хорошо, теперь мне нужно это», и в итоге я рвал огромные куски из источника MVC, прежде чем просто решить мои проблемы с некоторыми ручными методами отражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...