0
我目前遇到了我的搜索結果問題。用戶可以搜索不同的項目,例如類別,類型,價格等。問題是,當我選擇多個類別時,返回的列表不會返回項目。 我有一個視圖通過ajax提交GET請求,數據正確加載到傳遞給我的方法返回匹配結果的mvc操作方法中。類別作爲數組發送到viewModel。 將陣列添加到列表中
public IEnumerable<AdSearchViewModel> GetItemsFromSearch(AdSearchViewModel viewModel)
{
var result = from a in _dbContext.AdTable
select new AdSearchViewModel
{
Id = a.Id,
Name = a.Name,
CategoryId = a.CategoryId,
TypeId = a.TypeId,
Brand = a.Brand,
Price = a.Price,
Description = a.Description
};
if (viewModel != null)
{
if (viewModel.Id.HasValue)
result = result.Where(x => x.Id == viewModel.Id);
if (viewModel.SelectedCategory != null && viewModel.SelectedCategory.Length > 0)
{
result = viewModel.SelectedCategory.Aggregate(result, (current, item) => current.Where(x => x.CategoryId == item));
}
if (!string.IsNullOrEmpty(viewModel.Name))
result = result.Where(x => x.Name.Contains(viewModel.Name));
if (!string.IsNullOrEmpty(viewModel.Brand))
result = result.Where(x => x.Brand.Contains(viewModel.Brand));
if (viewModel.PriceFrom.HasValue)
result = result.Where(x => x.Price >= viewModel.PriceFrom);
if (viewModel.PriceFrom.HasValue)
result = result.Where(x => x.Price <= viewModel.PriceTo);
}
//TODO: return newest
return result;
}
正確的項目被加載,當我只點擊一個類別。我嘗試使用數組的foreach(仍然沒有運氣),但Visual Studio提出了稱爲錯誤的集合函數({「方法只能在Type.IsGenericParameter爲true的Type上調用。」})。
在IsGenericParameter屬性爲false的類型上獲取DeclaringMethod屬性將引發InvalidOperationException。 - MSND文檔
添加匹配結果與所選類別的正確方法是什麼?
我找到了解決方案! 這爲我工作: result = result.Where(x => viewModel.SelectedCategory.Any(y => y == x.CategoryId));
這已經是隻是在代碼中沒有顯示,對不起! – Bombebak