# ASP.NET Core MVC. Формы, фильтрация, поиск Добавим в наше приложение фильтрацию и поиск (попытаемся повторить функционал WPFприложения). ## Добавление формы Поля ввода на странице обычно заворачиваются в форму (тег `
`) и передаются в контроллер при клике на кнопку с типом `submit`. Можно сделать и автоматическую отправку формы при изменении данных в полях ввода ("живой" ввод), но такой вариант не рекомендую использовать, так как получается повышенная нагрузка на сервер (ведь каждый раз запрашивается страница целиком). Итак, добавим на страницу со списком продуктов форму с полями: ```cshtml

Список продуктов

... ``` Должно получиться примерно такое окно: ![](../img/web_cs_11.png) Что тут происходит? 1. Добавляем форму и задаем метод `GET` ```html
...
``` По умолчанию для отправки форм используется метод `POST`, в таком варианте данные формы передаются в теле запроса. Для формирования представления это не принципиально, но если перезагрузить получившееся окно в браузере, то мы потеряем контекст (введенные ранее данные для фильтрации). Используя метод `GET` мы передаем данные в _queryString_ и страница открывается с использованием этой строки и сохранением контекста (я подчеркнул эту строку на скриншоте). Еще в форме можно задать атрибут `action`, который задает альтернативный __URL__ для отправки формы, по умолчанию форма отправляется на __URL__ текущей страницы. 1. Добавляем на форму поле ввода для фильтрации по названию ```cshtml ``` - `name` - название переменной (ключа в _queryString_) - `value` - содержимое поля ввода (при первом запуске оно пустое, но если мы применим фильтрацию, то в содержимое запишется текущее значение фильтра, полученное из _queryString_) - __Context__ - про это свойстао было упоминание в лекциях, оно содержит все параметры запроса. Мы в данном случае вытаскиваем значение фильтра 1. Добавляем выпадающий список с типами продукции ```cshtml ``` - тег `