如何将EditorFor框中的DateTime对象默认为今天的日期?

时间:2019-09-05 20:49:28

标签: c# html twitter-bootstrap razor model-view-controller

我试图将EditorForbootstrap框默认为今天的日期,并且为只读,以便提交表单时,它将是今天的日期,而无需用户手动输入。

我尝试了一些方法,但是该值仍然保持为“ mm / dd / yyyy”。如果他们今天提交,我想说“ 09/05/2019”。

这是视图中的EditorFor框

            <div class="form-group">
                @Html.LabelFor(model => model.postDate, htmlAttributes: new { 
                @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.postDate, new { htmlAttributes = new { @value = DateTime.Today.ToString("mm/dd/yyyy"), @readonly = "readonly" } })
                    @Html.ValidationMessageFor(model => model.postDate, "", new { @class = "text-danger" })
                </div>
            </div>

这是模型中的属性

    [DataType(DataType.Date)]
    public DateTime postDate { get; set; }

我如何才能将其变成以首选格式显示今天日期的框?

1 个答案:

答案 0 :(得分:1)

尝试一下:

@Html.TextBoxFor(m => m.postDate, new { @Value = DateTime.Today.ToString("MM/dd/yyyy"), @readonly = "readonly" })

注意:

  • 方法名称
  • MM格式
  • @Value参数的大写字母

必须使用其他方法,因为如果您查看EditorFor的{​​{3}},则该方法不允许传递HTML属性。

MM是显示两位数月份(而不是分钟)的正确方法。

@Value似乎有必要大写。小写的@value由于某些原因不起作用。