MVC.NET中的Bootstrap datepicker问题

时间:2016-09-06 08:01:01

标签: javascript jquery asp.net-mvc datepicker

所以我试图使用http://www.eyecon.ro/bootstrap-datepicker/

中的日期选择器

我遇到了为此datepicker设置默认值的问题。它显示了格式" 0001-01-01 00:00:00"在我可以设定日期之前。我想要做的是显示今天日期! 我按如下方式创建DOM,这不是一个问题..

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

这将使用id&#34; ValidationValidFrom&#34;创建输入。 我的datepicker的jQuery代码如下:

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

唯一可行的是属性格式 defaultDate 由于某种原因无效,我尝试了其他线程中显示的其他属性,但无济于事..

生成的代码如下所示:

<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">

1 个答案:

答案 0 :(得分:2)

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

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

如果没有确认,这很可能是DateTime,即:

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更改的原因是因为<input>已有值,因此无法设置为“默认”。

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