Привязка сложных типов¶
Связыватель моделей может не только преобразовывать строки в примитивные типы, но и привязывать сложные типы, просматривая свойства, предоставляемые моделям привязки. Это полезно, когда обработчику страницы требуется много параметров, например:
Упрощение параметров метода привязкой к сложным объектам¶
Инкапсулируем отдельные значения в класс:
public class UserBindingModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
}
теперь сигнатура обработчика выглядит так:
Или можно выделить связанное свойство:
В процессе связывания создается новый экземпляр типа
UserBindingModel, затем перебираются все свойства этого типа и для каждого свойства ищется пара “имя-значение” в коллекции источников привязки. Также связыватель модели будет искать свойства с префиксом — именем свойства составного типа (в данном случае User), то есть user.FirstName, user.LastName и т.д.Чтобы привязка состоялась, класс должен иметь публичный конструктор без параметров, а сами свойства должны быть публичными и иметь геттер и сеттер.
Привязка коллекций и словарей¶
Также можно настраивать привязку к коллекциям, спискам и словарям.
Например, чтобы передать список, создадим обработчик страницы, принимающий список:
Отправлять данные в этот метод можно в нескольких форматах:
currencies[index], гдеcurrencies— имя параметра для привязки, аindex— индекс элемента, напримерcurrencies[0]=GBP¤cies[1]=USD;[index], если выполняется привязка только к одному списку:[0]=GBP&[1]=USD;currencies— можно опустить индекс:currencies=GBP¤cies=USD.
В случае словаря ключ заменяет индекс.
Привязка загрузки файлов с помощью IFormFile¶
Если необходимо загрузить файл, это можно сделать с использованием интерфейса IFormFile:
Или в случае нескольких файлов:
Внимание! Этот метод не подходит для загрузки больших файлов!
Для загрузки больших файлов лучше использовать потоковую передачу.
Последнее обновление :
19 апреля 2023 г.
Дата создания : 23 сентября 2022 г.
Дата создания : 23 сентября 2022 г.