【问题标题】:Filter date , decimal using ASP.net MVC使用 ASP.net MVC 过滤日期,十进制
【发布时间】:2016-09-19 15:42:19
【问题描述】:

我想知道是否可以过滤日期或十进制字段?如果是,我可以举一些例子吗?我正在尝试使用 asp.net 做一个具有发布日期和价格搜索功能的应用程序,有什么方法可以做到这一点吗?谢谢你。 要搜索字符串,我使用过:

 if (!String.IsNullOrEmpty(searchTitle))
            {
                movies = movies.Where(s => s.Title.Contains(searchTitle));
            }

但是我该如何处理 datepicker 中的日期和十进制的价格。谢谢

【问题讨论】:

  • 按日期或小数过滤是什么意思。你能解释一下你实际需要什么吗?
  • 我有一个搜索功能,用户可以搜索电影的发行日期,他们还可以使用十进制形式的电影价格进行搜索。因此,我可以知道这是否可行吗?
  • 是的。现在你想在什么情况下过滤它们:来自数据库?在数据结构中?客户端?请参加 Stack Overflow 之旅。您会发现请求站外链接是不合时宜的,而且您的问题非常广泛且非常模糊。一旦您有一些代码在过滤时遇到问题,请随时询问该问题。
  • 来自数据库。客户端

标签: asp.net asp.net-mvc date decimal filtering


【解决方案1】:

让我们创建一个返回movie 对象列表的函数。它将采用 Movies 参数列表作为原始列表,string 参数作为标题,可空 DateTime 用于发布日期,可空小数作为价格。我将假设这是一个累积过滤器:即“和”

如果将 null 或空字符串作为参数传递,它将被忽略。标题过滤器不区分大小写。

public List<movie> FilterMovies(List<movie> sourceList, string Title, DateTime? ReleaseDate, Decimal? Price)
{
     return movies.Where(
                  (!(string.IsNullOrEmpty(Title) || m => m.Title.ToLower().Contains(Title.ToLower()) &&
                  (!ReleaseDate.HasValue) || m.ReleaseDate == ReleaseDate.Value) &&
                  (!Price.HasValue) || m.Price == Price)
              ).ToList();
}

这是未经测试的,并且是从内存中完成的,充其量只是猜测,因为我不知道您的 movie 对象/模型是什么样的。我也会让您从用户输入中获取正确键入的信息,因为我们没有什么信息可以继续。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2018-07-08
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    相关资源
    最近更新 更多