Я почти уверен, что мое отсутствие понимания не позволяет мне заставить форму работать.
В настоящее время у меня есть форма, которая отправляет параметры фильтрации обратно в контроллер, а затем создает запрос. Текущие запросы, которые я строю, на самом деле ничего не делают. По крайней мере, когда это разделено так.
Из того, что я прочитал, что-то подобное должно работать, но из того, что я проверял, это не так.
[HttpPost]
public async Task<IActionResult> FilterPost()
{
var query = _context.Products;
query = query.OrderBy(m => m.Unit.Name)
.Include(m => m.Unit)
.Include(m => m.Attribute);
foreach (var request in Request.Form)
{
var AttributeValue = request.Value;
var AttributeName = request.Key;
query = query.Where(m => m.Attribute.Name == AttributeName)
.Where(m => m.Value >= int.Parse(AttributeValue));
}
return RedirectToAction("Index");
}
Этот метод, вероятно, довольно неудачен со всеми тестами, которые я провел на нем.
Я уже рассматривал использование ExpressionTrees и DynamicLINQ раньше. Они делают шов смущающе интересным и, возможно, немного излишним, может быть? Я не знаю. Может быть, мой мозг просто слишком истощен, чтобы видеть очевидный ответ ...
Я был бы признателен за любые предложения относительно решения или намек на решение.