String 当日期格式为yyyy mm dd时,如何在mvc core c中进行日期搜索?
我在.NETMVC核心中有一个网格,我根据搜索字符串在网格中的每一列中应用搜索。它适用于我输入的每个搜索字符串,除了使用连字符的日期字符串,如yyyy-mm-dd-ie 当我分别输入yyyy、mm或dd时,搜索工作正常。但是当我输入yyy加上连字符ie-yyy-,它就再也找不到任何记录了 以下是我的过滤器c代码:String 当日期格式为yyyy mm dd时,如何在mvc core c中进行日期搜索?,string,search,filtering,datetime-format,String,Search,Filtering,Datetime Format,我在.NETMVC核心中有一个网格,我根据搜索字符串在网格中的每一列中应用搜索。它适用于我输入的每个搜索字符串,除了使用连字符的日期字符串,如yyyy-mm-dd-ie 当我分别输入yyyy、mm或dd时,搜索工作正常。但是当我输入yyy加上连字符ie-yyy-,它就再也找不到任何记录了 以下是我的过滤器c代码: if (!String.IsNullOrEmpty(searchString)) { serviceRequests = serviceRequest
if (!String.IsNullOrEmpty(searchString))
{
serviceRequests = serviceRequests.Where(s => s.Id.ToString().ToLower().Contains(searchString.ToLower())
|| s.DateTimeSubmitted != null && s.DateTimeSubmitted.ToString().ToLower().Contains(searchString.ToLower())
|| s.RequestHeading != null && s.RequestHeading.ToLower().Contains(searchString.ToLower())
|| s.RequestDescription != null && s.RequestDescription.ToLower().Contains(searchString.ToLower())
|| s.RequestorId != null && s.RequestorId.ToLower().Contains(searchString.ToLower())
|| s.RequestorFirstName != null && s.RequestorFirstName.ToLower().Contains(searchString.ToLower())
|| s.RequestorLastName != null && s.RequestorLastName.ToLower().Contains(searchString.ToLower())
);
}
如何更改筛选器语法以允许使用yyyy-mm-dd字符串?为什么连字符会导致问题
谢谢看起来DateTimeSubmitted的类型是DateTime。如果使用DateTime.ToString方法会发生什么?引自:
将当前DateTime对象的值转换为其等效值
使用当前文件格式约定的字符串表示法
文化
因此,字符串表示可能与您期望的不同,例如01.01.0001 00:00:00
我建议使用如下格式字符串格式化源:
DateTimeSubmitted.ToString("yyyy-MM-dd");
或者是另一个适合你需要的。原来这是对建议的一个轻微扭曲: ||s.DateTimeSubmitted!=null&&s.DateTimeSubmitted.Value.ToString YYY-MM-dd.ToLower.ContainessSearchString.ToLower 必须将DateTimeSubmited.ToString更改为DateTimeSubmited.Value.ToString YYY-MM-dd才能指定格式。-ie在.ToString之前添加.value
非常感谢 感谢您提供的信息-尝试过了-当我在上面的筛选代码中这样做时-返回的错误消息是“method ToString takes 1 arguments没有重载”抱歉,我无法对其进行端到端测试-这是关于DateTime.ToString的一般性评论。我很高兴您能理解它。不过,如果付出的努力能得到回报,我还是会很感激的。你曾经投过更高的票吗?或者你还不熟悉这一点-现在阅读更多关于它的信息-谢谢