【问题标题】:Problems with Bootstrap datepicker in MVC.NETMVC.NET 中的 Bootstrap 日期选择器问题
【发布时间】:2016-09-06 08:01:01
【问题描述】:

所以我正在尝试使用来自http://www.eyecon.ro/bootstrap-datepicker/ 的日期选择器

我在为此日期选择器设置默认值时遇到问题。在我设置日期之前,它会显示格式“0001-01-01 00:00:00”。我想做的是显示今天日期! 我按如下方式创建 DOM,这不是问题..

<div>
      @Html.EditorFor(model => model.ValidationValidFrom, new { htmlAttributes = new { @class = "form-control", @id = "ValidationValidFrom" }})
</div>

这将创建 ID 为“ValidationValidFrom”的输入。 我的日期选择器的 jQuery 代码如下:

$("#ValidationValidFrom").datepicker({
        format: 'yyyy-mm-dd',
        defaultDate: new Date()
});

唯一有效的是属性formatdefaultDate由于某种原因不起作用,我尝试了其他线程中显示的其他属性,但没有有用..

生成的代码如下所示:

<input class="form-control text-box single-line" data-val="true" data-val-date="The field ValidationValidFrom must be a date." data-val-required="The ValidationValidFrom field is required." id="ValidationValidFrom" name="ValidationValidFrom" type="datetime" value="0001-01-01 00:00:00">

【问题讨论】:

  • 您在控制器中的模型中设置model.ValidationValidFrom 的值是多少(请确认数据类型和数据类型注释)?
  • 使用EditorFor,您无需指定 ID,它可能会破坏您的绑定。
  • @freedomn-m 尝试删除 ID,但也没有成功。
  • 对不起 - 意味着将该评论标记为离题。它与显示数据无关 - 当您发布到该模型时它只会变得更难 - 但如果您要发布到不同的模型,那很好。
  • 对上述查询的进一步说明:在调用 js .datepicker 之前,您的 EditFor 呈现为(带值)什么?

标签: javascript jquery asp.net-mvc datepicker


【解决方案1】:

EditorFor 生成输入并将值设置为模型属性的值。

在这种情况下,模型的属性是model.ValidationValidFrom

如果没有确认,这很可能是一个日期时间,即:

public class MyModel { 
    public DateTime ValidationValidFrom { get; set; } 

如果没有给日期时间赋值,它将是默认值:0001-01-01。

您可以在控制器中设置值:

[HttpGet]
public ActionResult MyView() {
    var model = new MyModel();
    model.ValidationValidFrom = DateTime.Today;  // or .Now to include time
    return View(model);

js defaultDate 没有从 0001-01-01 更改它的原因是因为 &lt;input&gt; 已经有一个值,所以不能设置为“默认”。

您可以通过将属性更改为 DateTime? 并在控制器中将其保留为 null 来更改此设置。这将生成一个带有value="" 的输入,然后js 应该给它一个默认值。

【讨论】:

  • 谢谢,我会调查一下,这看起来更合乎逻辑。你会听到我的消息!
猜你喜欢
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
相关资源
最近更新 更多