Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 当日期格式为yyyy mm dd时,如何在mvc core c中进行日期搜索?_String_Search_Filtering_Datetime Format - Fatal编程技术网

String 当日期格式为yyyy mm dd时,如何在mvc core 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

我在.NETMVC核心中有一个网格,我根据搜索字符串在网格中的每一列中应用搜索。它适用于我输入的每个搜索字符串,除了使用连字符的日期字符串,如yyyy-mm-dd-ie

当我分别输入yyyy、mm或dd时,搜索工作正常。但是当我输入yyy加上连字符ie-yyy-,它就再也找不到任何记录了

以下是我的过滤器c代码:

    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的一般性评论。我很高兴您能理解它。不过,如果付出的努力能得到回报,我还是会很感激的。你曾经投过更高的票吗?或者你还不熟悉这一点-现在阅读更多关于它的信息-谢谢