ASP.NET MVC 3 - редактировать элементы, динамически добавляемые в коллекцию моделей в диалоге jquery - PullRequest
6 голосов
/ 18 мая 2011

Я новичок в MVC, поэтому я не был уверен, какой лучший подход будет здесь.

У меня есть модель представления, которая содержит несколько коллекций, подобных этой:

public class MainViewModel{      
    public List<AViewModel> A { get; set; }
    public List<BViewModel> B {get; set; }
    ...}

Я использую подход Стива Сандерсона здесь для динамического добавления элементов в коллекцию, и он работает нормально, пока дочерние элементы доступны для редактирования на главном экране.

Проблема I 'у меня есть возвращаемый список только для чтения со ссылкой для редактирования, которая откроет детали для редактирования во всплывающем диалоговом окне.

Поскольку эти элементы могут быть добавлены вновь, я не могу использовать свойство ID для возврата частичноговид с контроллера.Похоже, мне придется визуализировать редакторов в скрытом div, как это:

    <div class="AEditorRow">
    @using (Html.BeginCollectionItem("A"))
    {                                                                 
        @Html.DisplayFor(l => l.ID)                

        @Html.DisplayFor(l => l.Name)

        @Html.DisplayFor(l => l.Code)

        <a href="#" onclick="$('#detailsPopup').html($(this).parent().find('.ADetails').html() ).dialog()">edit</a> <text>|</text>
        <a href="#" class="deleteRow">delete</a> 

        <div class="ADetails" style="display: none">
 @using (Html.BeginForm("EditA", "Controller"))
            {<fieldset>
                <legend>Location</legend>
                @Html.HiddenFor(model => model.ID)
                <div class="editor-label">
                    @Html.LabelFor(model => model.Code)
                </div>   

Кто-нибудь знает лучший способ сделать это?

Ответы [ 2 ]

5 голосов
/ 09 января 2012

Поработав над этой проблемой некоторое время, я смог найти подходящее для меня руководство.

http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3

Я думаю, что это наиболее применимый метод для выполнения динамически добавляемых объектов вложенных коллекций для MVC3. Большинство других предложений, которые я нашел, предназначались для MVC2 или MVC1, и кажется, что каждая итерация MVC - лучший способ слегка изменить это.

Надеюсь, это работает для вас.

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