C# 使用MVC获取日期时间类型数据

C# 使用MVC获取日期时间类型数据,c#,asp.net-mvc,asp.net-mvc-4,datetime,C#,Asp.net Mvc,Asp.net Mvc 4,Datetime,需要解决的问题: 从MVC应用程序获取时间和日期 我的具体问题是:我有一个停车管理应用程序。由于可以提前预订停车位,我需要知道停车开始时间和日期。对于我的型号,我使用了DateTime,因为MSDN将其宣传为全功能的时间和日期数据类型: NET Framework DateTime类为编写处理时间的程序提供了一个功能齐全的接口 我的研究:我搜索了这类问题的答案或典型解决方案(最佳实践),我得到的几乎都是: 全球化的问题 时区问题 不同的日期格式 但是没有考虑如何使用MVC应用程序方便地获

需要解决的问题:

  • 从MVC应用程序获取时间和日期
我的具体问题是:我有一个停车管理应用程序。由于可以提前预订停车位,我需要知道停车开始时间和日期。对于我的型号,我使用了DateTime,因为MSDN将其宣传为全功能的时间和日期数据类型:

NET Framework DateTime类为编写处理时间的程序提供了一个功能齐全的接口

我的研究:我搜索了这类问题的答案或典型解决方案(最佳实践),我得到的几乎都是:

  • 全球化的问题
  • 时区问题
  • 不同的日期格式
但是没有考虑如何使用MVC应用程序方便地获取日期和时间

我找到的最接近的答案是Scott Hanselman 2009年的解决方案-

人们倾向于使用的其他解决方案是不同的jQuery插件

在我看来,这些解决方案似乎有点过度设计。因为我不知道还有什么地方可以问,也不知道这些是否是唯一的解决方案——我的问题是:

  • 我的MVC时间和日期选择是什么-最佳实践?

在我的模型中,我使用:

[DataType(DataType.DateTime), DisplayFormat(DataFormatString = "{0:HH:mm dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? ParkingStartTime { get; set; }
在我看来,我使用:

 <div class="editor-label">
        @Html.LabelFor(vm => vm.newCarOnParkingSpot.ParkingStartTime)
    </div>
    <div class="editor-field">
        @Html.EditorFor(vm => vm.newCarOnParkingSpot.ParkingStartTime)
        @Html.ValidationMessageFor(vm => vm.newCarOnParkingSpot.ParkingStartTime)
    </div>

@LabelFor(vm=>vm.newCarOnParkingSpot.ParkingStartTime)
@EditorFor(vm=>vm.newCarOnParkingSpot.ParkingStartTime)
@Html.ValidationMessageFor(vm=>vm.newCarOnParkingSpot.ParkingStartTime)
此解决方案为我提供了一个HTML5日期选择器,但没有时间插入选项:



这是我的第一个问题,如果我弄错了这个问题,请温和一点。

因此@SLC建议我使用jQuery。我选择了jQuery DateTimePicker

根据SLC:


这方面没有最佳实践,jquery日期选择器可以很好地工作,而且非常简单

他是对的。我在7分钟内解决了我的问题

我所做的只是:

  • 将jQuery DateTimePicker文件添加到我的项目中(从上面的站点)
  • 按照该站点提供的说明操作(在cshtml文件中添加了2个脚本和1个css文件,在所需的输入字段中添加了一个id,并在先前添加的id上调用了jQuery函数-哇!)
  • 用DateTime数据类型将该数据保存到db上花费了0分钟
我觉得需要改进的地方之一是jQuery函数调用。还有比这更好的方法吗

<script type="text/javascript">
$(document).ready(function () {
    jQuery('#datetimepicker').datetimepicker();
});

$(文档).ready(函数(){
jQuery(“#datetimepicker”).datetimepicker();
});

您定义的问题不太清楚
从MVC应用程序获取时间和日期
。什么意思?如果您只是在寻找一个UI组件,任何事情都可以,即使是一个原始文本字段也可以,如果它的格式正确,MVC将对其进行适当的绑定。如果问题是在客户端显示和发送日期时间,有许多选项可用,如引导或jquery UI。浏览器不再支持HTML5日期时间@SLC和man_luck-我很抱歉没有详细说明我的问题。我想知道在UI端获取时间和日期的不同选项。是的,我见过一些jQuery插件,但我想知道最好的做法或最常用的解决方案是什么。另外,在DateTime数据类型中将日期和时间保存到db应该不会太复杂(因为我是一名实习生/初级开发人员)。这方面没有最佳实践,jquery日期选择器可以很好地工作,而且非常简单。非常快。。。当您使用属性和值[DataType(DataType.Date)]装饰属性时,您向MVC声明您只需要日期部分(无时间)。请看一下MVC如何呈现日期/时间编辑器。如果没有CSS类,请查看编辑器模板,以便使用一致的类呈现输入。然后,您可以将jQuery连接代码放在主共享模板中(用于所有页面),但使用新类而不是id。将其放在一个位置,并用于所有日期/时间输入。jQuery('.date').datetimepicker();