【问题标题】:ASP.NET MVC datetime editorASP.NET MVC 日期时间编辑器
【发布时间】:2015-01-14 20:06:15
【问题描述】:

我正在学习 ASP.NET MVC,我想为日期和时间创建编辑器。

这是我模型的一部分

[Display(Name = "Activity Date")]
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd hh:mm}", ApplyFormatInEditMode = true)]
public DateTime activityDate { get; set; }    

和我的部分观点

@Html.EditorFor(model => model.activityDate, new { htmlAttributes = new { @class = "dateTimePicker form-control" } })

现在,当我尝试编辑此字段时,数据只是一个字符串,但如果我像这样更改模型:

[Display(Name = "Activity Date")]
[DataType(DataType.Date)]//changed line
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd hh:mm}", ApplyFormatInEditMode = true)]
public DateTime activityDate { get; set; }

编辑器变得很花哨,能够通过鼠标滚轮滚动和精心设计的日期选择器更改值,但无法设置时间。

我能否同时获得精美的外观和 UI 以及更改时间的能力?

我尝试使用这个datetime picker for jquery。 这是我在浏览器中呈现的 html

<input class="form-control text-box single-line" data-val="true" data-val-date="The field Activity Date must be a date." data-val-required="The Activity Date field is required." id="datetimepicker" name="activityDate" type="datetime" value="2015-01-14 12:00">

这是我观点的一部分

<script>jQuery('#datetimepicker').datetimepicker();</script>
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/dateTimePicker")
}
@Styles.Render("~/Content/dateTimePicker1")`

但它仍然不起作用。

【问题讨论】:

  • 您正在使用dateTimePicker 装饰元素 - 这似乎是一个允许选择日期的插件。我会首先检查插件文档,或者扩展您的问题以包含插件信息。
  • 我认为它是 jQuery 的一部分,所以我尝试添加它,但它没有帮助,删除这部分没有任何改变。
  • @Alex 虽然我不确定你使用的是哪个 dateTimePicker,但如果你在页面上包含了BootStrap,你可以试试this

标签: c# datetime model-view-controller


【解决方案1】:

只需更改顺序,然后添加document.ready。不是:

<script>jQuery('#datetimepicker').datetimepicker();</script>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/dateTimePicker")
}
@Styles.Render("~/Content/dateTimePicker1")`

但是:

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/dateTimePicker")
}
@Styles.Render("~/Content/dateTimePicker1")`
// type='text/javascript' will allow to work it in IE7
<script type="text/javascript">
   // that will help you to be sure that script will execute just when document is ready
   $(document).ready(function(){
       $('#datetimepicker').datetimepicker();
   })
</script>

【讨论】:

  • 谢谢,它有帮助。但我将脚本添加到文件中,而不是将文件添加到包中。
  • 是的,在视图中使用脚本并不是最好的方法,最好保存在单独的文件中。我只是写信来说明如何解决您的问题以及原因是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多