【问题标题】:Setting a value to a bootstrap date type textbox in mvc在 mvc 中将值设置为引导日期类型文本框
【发布时间】:2015-03-21 14:46:23
【问题描述】:

我在绑定日期类型的日期时间数据类型引导文本框时遇到了困难。下面是我的模型。

  public class EmployeeApplications
    {
    ....
        [DataType(DataType.DateTime)]
        public DateTime ApplicationDate { get; set; }
        public long UserId { get; set; }
    }

我将我的模型强烈绑定到一个视图,其中 ApplicationDate 属性绑定到下面的日期类型文本框。

@Html.TextBox("ApplicationDate",String.Format("{0:d}", @p.ApplicationDate.ToShortDateString()),new { @class = "form-control datecontrol", @type = "date"  })

我的问题是我的日期文本框没有显示 ApplicationDate 返回的选定日期。我尝试了很多事情都失败了。我偶然发现了一个教程here 并尝试了他的示例。都失败了。请问如何设置值?我做错了什么?

【问题讨论】:

  • @p.ApplicationDate.ToShortDateString() 中的p 是什么?这表明您一定做错了什么(您是否在循环中做某事?)。以下将工作@Html.TextBoxFor(m => m.ApplicationDate, "{0:d}", ,new { @class ...}) 并且是定义格​​式字符串的正确方法。您还想要 HTML5 日期选择器还是使用 jquery 插件?对于 HTML5 datepicke,您需要不同的解决方案
  • @StephenMuecke。我看到的例子是基于 html5 datepicker。我正在尝试实现 Html5 Datepicker,因为它在这里看起来并不复杂 aubrett.com/InformationTechnology/WebDevelopment/MVC/…
  • 它必须是 [DataType(DataType.Date)] 并添加 [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}" ApplyInEditMode = true)],(ISO 格式)然后 @Html.TextBoxFor(m => m.ApplicationDate, new { @class = "form-control datecontrol", type = "date" }) 或者您可以删除这两个属性并只使用 @Html.TextBoxFor(m => m.ApplicationDate, "{0:yyyy-MM-dd}", new { @class = "form-control datecontrol", type = "date" })
  • @StephenMuecke。谢谢你,先生。它现在完美无缺。我也意识到我的 js 没有加载,因此影响了 IE 中的工作。现在它工作正常。请写下你的答案会接受它。

标签: asp.net-mvc twitter-bootstrap asp.net-mvc-4


【解决方案1】:

要使用 HTML5,日期必须采用 ISO 格式 (yyyy-MM-dd)。

@Html.TextBoxFor(m => m.ApplicationDate, "{0:yyyy-MM-dd}", new { @class = "form-control datecontrol", type = "date" })

旁注:

  1. [DataType(DataType.Date)] 仅在使用时适用 Html.EditorFor(),在这种情况下您还可以添加显示 使用[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}" ApplyInEditMode = true)] 格式化并使用生成控件 @Html.TextBoxFor(m => m.ApplicationDate),但仅限 MVC 5.1+ 支持添加 html 属性(即引导类名称)所以 对于 MVC 4,必须使用 Html.TextBoxFor()
  2. HTML5 日期选择器控件仅在现代浏览器中受支持 并且还没有在 FireFox 中。

【讨论】:

  • 先生,如果你有空,你能帮我看看这个 Angular js 问题吗?自从yest以来一直在努力解决它并且无法让它继续下去。一切都很好,但我的模板没有返回。我很困惑:(goo.gl/KtKMpa
  • @NuruSalihu,对不起,但我不使用角度所以帮不上忙
  • 哦,好的,谢谢您的宝贵时间先生。我只是无法整合 angular 。其归空。如果出现错误,我将进行故障排除。但甚至无法开始。它令人沮丧。我正在运行节点,在玉 html 引擎上用角度表示。到目前为止,角度模板返回为空。
【解决方案2】:

试试这个:

$(".datecontrol").datepicker("update", new Date());

【讨论】:

  • 谢谢。它没有改变。会继续尝试,看看我是否会理解。
【解决方案3】:

对于像我这样的人可能不会分配格式和调试几个小时,您可以查看引导程序显示的格式。并设置它需要的格式。

@Html.TextBoxFor(m => m.ApplicationDate, "{0:MM/dd/yyyy HH:mm tt}", new { @class = "form-control datetimepicker"})

我的 javascript 调用这个函数没有格式

  $('.datetimepicker').datetimepicker();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    相关资源
    最近更新 更多