我想包括或排除在状态中的字段。
我有一个带有5列的网格,每列都有一个称为CanSearchable
的属性。如果用户在文本框中输入搜索串并单击Searech按钮,则我需要在可搜索属性为真的列中搜索字符串。单击搜索按钮后,我已将搜索串和要搜索的列(列1,Column2,Column4(发送到控制器。
这是我的搜索linq。
staffs = staffs.Where(s => s.column1.Contains(model.SearchString) ||
s.column2.Contains(model.SearchString) ||
s.column4.Contains(model.SearchString));
我想根据要搜索的列动态创建此部分。
s.column1.Contains(model.SearchString) || s.column2.Contains(model.SearchString) ||
s.column4.Contains(model.SearchString)
请建议我解决方案。
如果要搜索的列将其设置为CanSearchable
,那么您的要求很容易
staffs = staffs.Where(s =>
s.column1.CanSearchable && s.column1.Content.Contains(model.SearchString)||
s.column2.CanSearchable && s.column2.Content.Contains(model.SearchString)||
s.column3.CanSearchable && s.column3.Content.Contains(model.SearchString)||
s.column4.CanSearchable && s.column4.Content.Contains(model.SearchString));