Редактирование коллекции в коллекции с использованием MVC 3 - PullRequest
0 голосов
/ 18 ноября 2011

Я пытаюсь создать представление редактирования для следующего сценария:

Profile class { String profileName, IList<Phase> phases; //plus there getter setter}

Phase class { String phaseName, IList<SubPhase> subPhases; //plus there getter setter}

SubPhase class { String subPhaseName // plus there getter setter}

Я создал представление профиля с @model CollectionEditing.Models.Profile и двумя частичными представлениями как PhaseEditor и SubPhaseEditor

I профиляпредставление Я использую частичное представление:

//iteration the phases
for (int i = 0; i < Model.Phases.Count; i++)
{ 
    //rendering the partial view for Phases
    Html.RenderPartial("PhaseEditor", Model.Phases[i]);   
    //iteration the SubPhases 
    for (int j = 0; j < Model.Phases[i].SubPhases.Count; j++)
    {
        //rendering the partial view for SubPhases
        Html.RenderPartial("SubPhaseEditor", Model.Phases[i].SubPhases[j]);
    }
}

Редактируемое представление успешно создается.

Когда я нажимаю кнопку «Отправить», в своем действии я получаю значения для профиля и его списка фаз иЯ не получаю список Подфазы в классе Фазы.список подфаз установлен в нуль.

Я также пытался поместить Html.RenderPartial("SubPhaseEditor", Model.Phases[i].SubPhases[j]); в частичное представление PhaseEditor, но все равно он не работает.

Пожалуйста, помогите ... Как я могу получить списокПодфаз также.

Большое спасибо за вашу помощь.

Сушил

1 Ответ

0 голосов
/ 18 ноября 2011

Вы имеете в виду, что ModelBinder не передает «полный» объект вашему контроллеру?

Это не будет сделано автоматически для вас.Базовые коллекции не используются ModelBinder.Вам придется создать эту коллекцию самостоятельно.Используйте FormCollection в вашем контроллере в качестве параметра и выполняйте итерацию по нему для создания коллекции.

В этом посте показано, как перечислять с помощью FormCollection: Как можно перечислить formcollection в ASP.NET MVC?

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