我有一个MVC操作,它接受来自搜索表单(下拉列表和文本框)的搜索条件,该搜索表单根据搜索条件返回项目列表。但是我对结果不满意,因为代码太冗长/冗长。我想重构它。任何建议,我可以得到相同的结果,但我的代码不像这样凌乱?我不需要我的代码的精确副本,我只是想要一个更简单的格式来实现相同的结果。任何的想法?看看这个烂摊子。
IComparer
我主要担心的是if else语句,因为我在搜索表单中创建了另一个下拉列表,它会在我的控制器操作中添加一系列条件。
答案 0 :(得分:1)
试试这个:
public PartialViewResult ClientSearch(ClientViewModel data)
{
var model = new ClientViewModel();
model.ClientsCollection = _ClientService.Get(u => ((data.SearchString == "" || u.FullName.Contains(data.SearchString)) && (data.SelectedClientStatus == null || u.StatusID == data.SelectedClientStatus) && (data.SelectedLocation == null || u.LocationID == data.SelectedLocation)), null, "ClientsProfile, ClientsMobiles").ToList();
return PartialView("_ClientsResult", model);
}