Мой фильтр даты отлично работает, когда я помещаю его в отдельный вид, но у меня возникают проблемы с его объединением с другими фильтрами, и я не уверен, где я ошибаюсь. Все остальные фильтры работают. Не могли бы вы взглянуть и сообщить мне, что мне нужно изменить, когда я присоединяюсь к моему запросу другим, чтобы заставить его работать и сливаться? Спасибо!Фильтр даты не работает должным образом MVC
Вот как это выглядит в отдельном контроллере, и это работает в целях:
public ActionResult DateFilter(FormCollection DatePicker)
{
DateTime start = DateTime.Today;
DateTime end = DateTime.Today;
if (DatePicker.Count > 0)
{
start = DateTime.Parse(DatePicker["startDate"].ToString());
end = DateTime.Parse(DatePicker["endDate"].ToString());
}
var Issue = db.Issue.Where(d => d.DateCreated >= start && d.DateCreated <= end).Select(i => new IssueViewModel
{
Name = i.Name,
Description = i.Description,
DateCreated = i.DateCreated,
DateCompleted = i.DateCompleted,
//ect.
}).ToList();
ViewBag.Issue = Issue;
return View();
}
Вот как это выглядит слиты с другими фильтрами:
private static IQueryable<Issue> FilterDeviceList(List<Issue> issues, FormCollection DatePicker, string EHP, string IssueKey)
{
var query = issue.AsQueryable();
//COPYING STARTS HERE
DateTime start = DateTime.Today;
DateTime end = DateTime.Today;
if (DatePicker.Count > 0)
{
start = DateTime.Parse(DatePicker["startDate"].ToString());
end = DateTime.Parse(DatePicker["endDate"].ToString());
}
query = query.Where(d => d.DateCreated >= start != null && d.DateCreated <= end != null && d.DateCreated == Convert.ToDateTime(DatePicker));
//COPYING ENDS HERE
if (!string.IsNullOrWhiteSpace(EHP))
query = query.Where(i => i.EHPP != null && i.EHPP == (EHP == "1" ? false : true));
if (!string.IsNullOrWhiteSpace(IssueKey))
query = query.Where(i => i.IssueKey != null && i.IssueKey.Contains(IssueKey));
return query;
}
Если кто-нибудь нужно увидеть представление или контроллер, который вызывает IQueryable, пожалуйста, дайте мне знать, и я могу опубликовать его, но я думаю, этого должно быть достаточно. Еще раз спасибо! :)
Что конкретно не работает? BTW, я не совсем уверен, что это выражение делает 'd.DateCreated> = start! = Null' – Shyju
Я пробовал делать это, не устанавливая его равным нулю, но это тоже не работает. Я просто играл с ним. Метод в первом контроллере корректно возвращает фильтр даты на дату, но метод в объединенном контроллере IQueryable ничего не возвращает, и я не уверен, что в строке нужно изменить или где он должен быть помещен. – Millie