Передача универсального списка <T>данных из контроллера для просмотра с использованием ViewBag - PullRequest
0 голосов
/ 25 мая 2019

Я отправляю данные из таблицы после их группировки и передачи их в View с помощью view bag и хочу отобразить данные

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

Контроллер

var data = (from e in `dc.tb`l
                        group e by e.a into g
                        select new
                        {
                            Name = g.Key,
                            `Task``Name` = g.Select(x => x.'task').To'List'(),
                            Task_Assignee = g.Select(x =>x.Name).To'List'(),
                            Task_Assigned_Date = g.Select(x =>x.U_Date).To'List'(),
                            Task_Completed_Date = g.Select(x => x.date).To'List'(),
                            Remarks_From_Assignee = g.Select(x => x.U_Remarks).To'List'(),
                            Remarks_From_Assigner = g.Select(x =>x.'rem').To'List'(),
                            Points_Given = g.Select(x=>x.Points).To'List'(),
                        }).To'List'();

как показать сгруппированные данные по именам пользователей в таблице

1 Ответ

0 голосов
/ 25 мая 2019

Это ужасная идея.Вы не можете просто обойти анонимные объекты и обеспечить безопасность всех типов, и это тоже не идея.Это также ужасный запрос, учитывая множество внутренних запросов.

Вот то, что вы должны использовать, следуя общим шаблонам и соглашениям об именах:

public class TaskGroup
{
    public string Key { get; set; }
    public Lists<TaskViewModel> Tasks { get; set; }
}

public class TaskViewModel
{
    public string Name { get; set; }
    public string Assignee { get; set; }
    // rest of the properties
}

И вы бы использовали это:

List<TaskGroup> data = context.TableName
    .GroupBy(x => x.GroupingProperty)
    .Select(grp => new TaskGroup 
    {
        Key = grp.Key,
        Tasks = grp.Select(task => new TaskViewModel
        {
            Name = task.Task,
            Assignee = task.Name,
            // etc
        })
        .ToList()
    })
    .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...