Ответ 1
Не совсем понятно, что вы конкретно задаете, но, в общем:
- Напишите представление помощника или частичное представление, которое возвращает форму поиска. Назовите это на своих других страницах, где вам нужно отобразить окно поиска. Сделайте форму action GET, а не POST.
- Для поиска по сайту вы, вероятно, захотите иметь контроллер поиска. Для поиска в одном конкретном типе данных вы можете добавить действие к существующему контроллеру или к аргументу существующего действия. По большей части единственное, что мы должны добавить, это аргумент для действия "Список" общего назначения для определенного типа данных. Форма поиска вызывает "Список" и задает аргумент с строкой поискового запроса.
- Фактический поиск выполняется в вашем репозитории. Это единственная часть приложения, которая знает о таких вещах, как SQL Server или Lucene. Для тривиальных случаев контроллер может добавлять .Where к IQueryable <T> возвращенный репозиторием.