gpt4 book ai didi

asp.net-mvc-3 - TextBoxFor Date 对象始终显示时间元素

转载 作者:行者123 更新时间:2023-12-03 07:10:12 24 4
gpt4 key购买 nike

我在 MVC 3 中显示/编辑日期时遇到问题。

我已按如下方式设置数据类属性(数据实际上由 Linq2Sql 对象提供):

[DisplayName("Date of Birth")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}", NullDisplayText = "")]
public DateTime DoB { get; set; }

在我的观点中:

@Html.TextBoxFor(m => m.DoB, new { @class = "date" })

问题是,文本框总是显示日期的时间部分,例如'18/10/2010 00:00:00'

我知道我可以通过使用标准 Html.TextBox 来解决这个问题

@Html.TextBox("DoB", Model.DoB.ToShortDateString())

但我真的希望能够从数据模型中控制它。

我在网络上找到了一些文章,表明这种方法可行,但我无法重复他们的成功。

任何帮助/建议将不胜感激。

最佳答案

如果您希望数据注释属性(例如 DisplayFormat)具有任何效果,您应该使用:

@Html.EditorFor(m => m.DoB)

查看 following blog post来自 Brad Wilson,其中解释了模型元数据在 ASP.NET MVC 中的工作原理。

缺点是现在你不能再指定类了。一种可能的解决方案是这样做:

<div class="input-date">
@Html.EditorFor(m => m.DoB)
</div>

然后样式:

.input-date input {
...
}

或者你也可以写一个 custom DataAnnotationsModelMetadataProvider这将允许您使用数据注释来指定类、大小、最大长度等属性。

关于asp.net-mvc-3 - TextBoxFor Date 对象始终显示时间元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com