MVC 3 Ведение порядка в свойстве List <> у объекта - PullRequest
1 голос
/ 22 июня 2011

У меня проблемы с проектом, над которым я работаю.У меня есть планировщик задач.Модели состоят из заданий и заданий.Работа и Задача имеют много-много отношений.Я поддерживаю отношение к задаче в Job через свойство List Tasks.Я хочу, чтобы пользователь мог расположить Список задач в определенном порядке, чтобы я мог выполнять их точно.Я построил методы для упорядочения задач, но кодовый фреймворк всегда поддерживает отношения в порядке, основанном на идентификаторе.Таким образом, заказ потерян.У кого-нибудь есть идеи, как реализовать что-то подобное в MVC 3?

  #region 
JobModel
    public class Job
    {
        public int ID { get; set; }        
        public string Name { get; set; }
        public string Description { get; set; }
        public DateTime? Date { get; set; }
        public int JobCategoryID { get; set; }       
        public virtual JobCategory JobCategory { get; set; }

        public virtual List<Task> Tasks { get; set; }

    }
    #endregion

    #region TaskModel
    public class Task
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }  
        public virtual ICollection<Job> Jobs { get; set; }

    }

Ответы [ 2 ]

0 голосов
/ 23 июня 2011

Хорошо для тех, кто заинтересован в рабочем решении.

Сначала я удалил взаимосвязь «многие ко многим» между двумя моделями «Задача» и «Работа». Я узнал, что многие сложные отношения в MVC могут усложняться для сложных наборов данных. Поэтому я рекомендую по возможности избегать этих отношений. Затем я создал частичное представление с задачами, которые можно динамически загружать в контроллер Job / Edit. Я перешел к просмотру job.Tasks.OrderBy (m = m.order), как рекомендовано выше @William Bonar.

По мере добавления задач я увеличиваю атрибут порядка последней задачи на 1 и добавляю в список задач. Затем я предоставляю пользователям интерфейс jquery / ajax для перемещения задач вверх и вниз по списку, который использует довольно простую логику для настройки порядка задач.

Надеюсь, это поможет некоторым людям.

0 голосов
/ 22 июня 2011

Хотя это явно для MVC2, я нашел эту статью и код в Mvc Nested List Tutorial очень полезными.

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

Вы должны иметь возможность создавать javascript или другие действия для изменения порядка и настройки скрытых значений сортировки для каждого элемента. Затем после записи каждый элемент должен быть правильно отсортирован.

Удачи

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