【问题标题】:Filter Between 2 date in ASP.NET MVC在 ASP.NET MVC 中过滤 2 个日期
【发布时间】:2019-04-19 11:48:36
【问题描述】:

我想在两个日期之间过滤或搜索我写了这段代码,但是当我运行应用程序时,表中的数据没有显示出什么问题?

这是我的控制器:

    public ActionResult Index(DateTime? start, DateTime? end)
    {
        var ExpenseDetails = _context.ExpenseDetails.Include(s => s.expenses).Where(t => t.DateExpense >= start && t.DateExpense <= end).ToList();

        return View(ExpenseDetails);
    }

这是视图:

@using (Html.BeginForm())
{
        <div>
            <span>Start Date :</span> <input type="date" name="start" />
            <span>End Date :</span> <input type="date" name="end" />
            <input type="submit" value="Get Records Between Dates" />
        </div>
        <table>
        @foreach (var item in Model)
        {
            <tbody>
               <tr>
                    <td>
                         @Html.DisplayFor(modelItem => item.expenses.Expenses_Type)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.DateExpense)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.Amount)
                    </td>                           
            </tbody>
         }
        </table>

}

enter image description here

谢谢

【问题讨论】:

    标签: c# asp.net-mvc search filter


    【解决方案1】:

    您在处理日期时需要确认以下几点:

    • 如果不需要,比较不带时间部分。例如here
    • 以通用格式比较 DateTime。 For example 输入日期时间和服务器日期时间可以在不同的时区。在比较之前将它们都转换为 Utc
    • 您可以单独比较年份和月份[不推荐]

    【讨论】:

    • 您能告诉我用户界面上日期框中的输入是如何填充的吗?您是键入它还是使用插件或浏览器的默认行为来填充字段?同样在回发时,“开始”和“结束”中的值是什么。 t.DateExpense 中的值是多少?可以分享一些调试模式下的截图吗?
    • 例如用户输入日期;用户在文本框 1 中输入日期 1,然后在文本框 2 中输入日期 2,然后将显示此日期之间的所有数据
    • 我明白了。我正在寻找日期格式。 dd/mm/yyyy 还是 mm/dd/yyyy 还是 d/m/yy?请提供一些调试模式的截图。
    • 好的,我会添加图片
    • 现在可以检查了,试试这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2011-06-04
    • 2014-03-30
    相关资源
    最近更新 更多