Несколько критериев поиска в ASP. Net Core 3 - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь собрать простое ASP. Net Core 3 MVC приложение вместе и следовал нескольким учебникам, чтобы получить одно поле ввода для поиска по одному SQL столбцу таблицы сервера, который работает нормально, к сожалению, мне немного не хватает знаний о том, как выполнить следующую часть ....

Мой вопрос:

Как мне составить поиск, где у меня может быть несколько полей ввода для один столбец или несколько полей ввода для нескольких столбцов?

т.е.

input1, input2, input3, input4, input5, input6 в представлении, чтобы иметь возможность поиска по SQL базе данных таблица dbo.Products в столбце / поле «Описание»?

В идеале все поля ввода можно оставить пустыми или заполнить отфильтрованными данными.

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

т.е.

Описание: категория продукта, название продукта, м aterial1, материал 2, материал 3, материал 4, размер, рейтинг, цвет, толщина

Существующий интерфейс доступа имеет несколько окон поиска, поэтому пользователь может отфильтровать предыдущие приобретенные предметы:

имя , размер, цвет или рейтинг, материал 4, название продукта.

В учебном наборе есть следующее лямбда-выражение для выполнения поиска:

View = Views / Raptors / Index.cs html

<form asp-controller="Raptors" asp-action="Index">
    <p>
        Position: <input type="text" name="searchString" />
        <input type="submit" value="Filter" />
        College: <input type="text" name="searchCollege" />
        <input type="submit" value="Filter" />
    </p>
</form>

Контроллер = Контроллеры / RaptorsController

// GET: Raptors
//public async Task<IActionResult> Index() // hidden to add search
public async Task<IActionResult> Index(string searchString)
{
var raptor = from m in _context.Raptors select m; // linq query alternative to sql query

// added for the search function
if (!String.IsNullOrEmpty(searchString)) // if it's not empty...
{
raptor = raptor.Where(s => s.PlayerPosition.Contains(searchString));
}
// end of search function

//  return View(await _context.Raptors.ToListAsync()); // hidden to add search
return View(await raptor.ToListAsync());
}

Если честно, я все еще пытаюсь понять, что на самом деле происходит в контроллере, как вещи соотносятся друг с другом , Это часть моей битвы.

Обновленный пример более приспособлен к двум полям поиска для двух полей соответственно, но я все же хотел бы иметь возможность искать одно поле по нескольким полям поиска из-за все переменные в этом одном поле.

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

...