【问题标题】:Displaying date only in ASP.NET MVC仅在 ASP.NET MVC 中显示日期
【发布时间】:2019-01-06 05:31:42
【问题描述】:

我被这个问题困住了,我不知道为什么我的代码似乎不起作用。我只想在 ASP.NET MVC 视图中显示我从我的 SQL Server 数据库中获取的日期,但它似乎没有任何用处..

这是我的代码

 <div class="form-group">
     <label>Separated Date</label>
     @Html.TextBoxFor(model => model.SeparatedDate, new { @class = "form-control", disabled = "disabled" })
</div>

我使用了一个视图模型,在那里我设置它只显示日期。

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public Nullable<System.DateTime> SeparatedDate { get; set; }

但是当我渲染页面时,它仍然显示时间

我希望有人可以帮助解决这个问题

【问题讨论】:

    标签: sql-server asp.net-mvc date razor bootstrap-modal


    【解决方案1】:

    您可以在TextBoxFor helper 中指定日期格式,无需时间部分:

    @Html.TextBoxFor(model => model.SeparatedDate, "{0:MM/dd/yyyy}", new { @class = "form-control", disabled = "disabled" })
    

    当然,因为您使用DataFormatString 定义DisplayFormat,所以您可以使用EditorFor

    @Html.EditorFor(model => model.SeparatedDate)
    

    参考:TextBoxFor show date without time

    注意:禁用的输入助手将不会发送其中包含的值。如果您想一起发送但仍不允许用户输入,请改用readonly="readonly" 属性。

    【讨论】:

    • 谢谢它的工作,但我有一些问题,为什么如果使用 TextBoxFor 它不起作用?而在 EditorFor 中它确实 ???
    • TextBoxFor 需要指定格式字符串才能使日期格式在编辑模式下工作,而EditorFor 会根据ApplyFormatInEditModeDataFormatString 设置自动格式化绑定到它的DateTime 属性。跨度>
    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多