Отправить на мой взгляд класс, который содержит 2 списка объектов - PullRequest
0 голосов
/ 01 декабря 2018

Моя цель: отправить на мой взгляд класс, который содержит 2 списка объектов

Для этого вот как я пытаюсь продолжить:

  1. Я звоню в БДкоторый возвращает мне список всех моих событий.
  2. Я делаю второй вызов БД, который возвращает мне список всех моих под-событий.
  3. У меня есть класс EventViewModel, которыйсодержит класс List <_EventsLines> и класс List <_SubEventsLines>.
  4. Мне нужно отправить результат этих двух запросов в одном представлении, но я не знаю, как я могу это сделать (если это возможно)

Я подключаюсь к БД Filemaker, и она основана на одном представлении, поэтому мне нужно сделать 2 вызова.

Но тогда я бы хотел поместить результаты этих2 вызова в одном и том же объекте (oEventViewModel), чтобы отправить их обратно в мое представление.

У вас есть решение?

Контроллер

[Authorize]
[HttpGet]
public async Task<ActionResult> Index()
{
    ViewBag.sessionv = HttpContext.Session.GetInt32("idMember");
    FileMakerRestClient client = new FileMakerRestClient(serverName, fileName, userName, password);
    var toFind = new Models.EventsLines { Zkf_CTC = 1053 };
    var results = await client.FindAsync(toFind);

    Models.EventViewModel oEventViewModel = new Models.EventViewModel
    {
        _EventsLines = (from o in results select o).ToList()
    };

    var xtoFind = new Models.SubEventsLines { Zkf_CTC = 1053 };
    var xresults = await client.FindAsync(xtoFind);

    Models.EventViewModel oSubEventViewModel = new Models.EventViewModel
    {
        _SubEventsLines = (from x in xresults select x).ToList()
    };


    ViewBag.Zkf_CTC = 1053;
    ViewBag.JsonList = oEventViewModel;

    return View(oEventViewModel);
}

Модель

public class EventViewModel
{
    public List<EventsLines> _EventsLines { get; set; }
    public List<SubEventsLines> _SubEventsLines { get; set; }
}

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Хорошо, мне просто нужно было изменить мой код, и теперь он работает:

[Authorize]
[HttpGet]
public async Task<ActionResult> Index()
{
    ViewBag.sessionv = HttpContext.Session.GetInt32("idMember");
    FileMakerRestClient client = new FileMakerRestClient(serverName, fileName, userName, password);
    var toFind = new Models.EventsLines { Zkf_CTC = 1053 };
    var results = await client.FindAsync(toFind);

    var xtoFind = new Models.SubEventsLines { Zkf_CTC = 1053 };
    var xresults = await client.FindAsync(xtoFind);

    Models.EventViewModel oEventViewModel = new Models.EventViewModel
    {
        _EventsLines = (from o in results select o).ToList(),
        _SubEventsLines = (from x in xresults select x).ToList()
    };

    ViewBag.Zkf_CTC = 1053;
    return View(oEventViewModel);
}
0 голосов
/ 01 декабря 2018

Существует множество способов использования нескольких моделей в одном представлении.Здесь я объясню способы один за другим.

1.Использование динамической модели ExpandoObject (пространство имен System.Dynamic) - это класс, добавленный в .Net Framework 4.0, который позволяет динамически добавлять и удалять свойства объекта во время выполнения.Мы можем передать этот динамически созданный объект в представление и отобразить список учителя и ученика.

2.Использование View Model ViewModel - это всего лишь один класс, который может иметь несколько моделей.Он содержит несколько моделей в качестве свойства.Он не должен содержать никаких методов.

3.Использование ViewData ViewData используется для передачи данных из контроллера в представление.ViewData - это словарный объект, который может быть доступен с использованием строки в качестве ключа.Используя ViewData, мы можем передать любой объект из контроллера в представление.Код преобразования типа требуется при перечислении в представлении.

4.Использование ViewBag ViewBag аналогичен ViewData и также используется для передачи данных из контроллера в представление.ViewBag - это динамическое свойство.ViewBag - это просто оболочка для ViewData.

5.Использование Tuple Объект Tuple - это неизменяемый объект фиксированного размера и упорядоченной последовательности.Это структура данных, которая имеет определенное количество и последовательность элементов..NET Framework поддерживает кортежи до семи элементов.

6.Использование метода действия Render Частичное представление определяет или отображает частичное представление в представлении.Мы можем визуализировать некоторую часть представления, вызвав метод действия контроллера, используя метод Html.RenderAction.Метод RenderAction очень полезен, когда мы хотим отобразить данные в частичном представлении.Недостатки этого метода в том, что имеется только несколько вызовов контроллера.

для получения более подробной информации, пожалуйста, обратитесь к ссылке , указанной ниже

...