我有一个输入到 IEnumerable 的详细信息视图。带有一堆下拉列表的视图,可让您将过滤器添加到呈现的记录列表中。
所有这些下拉列表对应于 MVC 模型上的属性:
public class Record
{
public string CustomerNumber { get; set; }
public string CustomerName { get; set; }
public string LineOfBusiness{ get; set; }
public DateTime? Date { get; set; }
}
现在,我使用我的模型作为我的 dto 在我的控制器和我的 repo 之间混洗数据。由于我所有的下拉过滤器都代表模型属性,因此我将模型传递给 repo 检索方法,检查其属性并根据其值进行过滤?换句话说:
public IEnumerable<TradeSpendRecord> Get(TradeSpendRecord record)
{
IQueryable<tblTradeSpend> query = _context.tblRecords;
if (!String.IsNullOrEmpty(record.CustomerName))
query = query.Where(x => x.CustomerNumber == record.CustomerNumber);
if (!String.IsNullOrEmpty(record.LineOfBusiness))
query = query.Where(r => r.LOB == record.LineOfBusiness);
剪辑
希望这不是太主观,但我想知道是否有人对这是否是一个好/坏的做法有任何意见。我还没有看到很多我需要做的动态过滤示例,我正在寻找一些指导。
谢谢,
克里斯