【问题标题】:How to default a DateTime object in the EditorFor box as today's date?如何将 EditorFor 框中的 DateTime 对象默认为今天的日期?
【发布时间】:2020-01-08 18:56:20
【问题描述】:

我正在尝试将 EditorFor 引导框默认设置为今天的日期并且是只读的,以便在提交表单时,它将是今天的日期,而无需用户手动输入。

我尝试了一些方法,但值仍然是“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; }

我怎样才能让它只是一个以首选格式显示今天日期的框?

【问题讨论】:

  • 你试过public DateTime postDate { get; set; } = DateTime.Now.Date;吗?
  • 如果我将模型中的日期代码更改为此,我需要在视图中更改什么?我只是尝试在我的模型中更改它,但它没有用。 @flydog57

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


【解决方案1】:

试试这个:

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

注意:

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

需要一种不同的方法,因为如果您查看EditorForsignature,它不允许传递HTML 属性。

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

@Value 似乎需要大写。小写的@value 出于某种原因不起作用。

【讨论】:

  • @auburntotd:乐于助人! :-)
猜你喜欢
  • 2020-01-23
  • 1970-01-01
  • 2011-04-22
  • 2015-01-26
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
相关资源
最近更新 更多