Я использую ASP.NET MVC с EF 6.
У меня есть страница запаса, которая показывает всю информацию о запасах. Теперь я хочу также фильтровать записи.
На рисунке ниже у меня есть 3 варианта. Я могу фильтровать по каждому параметру, по одному за раз или по сочетанию двух или со всеми тремя.
Я подумывал написать запрос linq для каждого выбранного варианта. Но это будет невозможно, если опция фильтра увеличивается. Есть ли лучший способ этого.
Спасибо!
Это то, что я сделал в моем контроллере. (в настоящее время выпадающий список имеет два параметра, за исключением: "- select one -" )
public ActionResult StockLevel(string option, string batch, string name)
{
if (option != "0" && batch == "" && name == "")
{
if(option == "BelowMin")
{
List<Stock> stk = (from s in db.Stocks
where s.Qty < s.Item.AlertQty
select s).ToList();
return View(stk);
}
else
{
List<Stock> stk = (from s in db.Stocks
where s.Qty == s.InitialQty
select s).ToList();
return View(stk);
}
}
if (option == "0" && batch != "" && name == "")
{
List<Stock> stk = (from s in db.Stocks
where s.BatchNo == batch
select s).ToList();
return View(stk);
}
if (option == "0" && batch == "" && name != "")
{
List<Stock> stk = (from s in db.Stocks
where s.Item.Name.StartsWith(""+name+"")
select s).ToList();
return View(stk);
}
return View(db.Stocks.ToList());
}