gpt4 book ai didi

asp.net-mvc - 隐藏日期时间的 ASP.NET MVC 格式

转载 作者:行者123 更新时间:2023-12-01 16:13:57 24 4
gpt4 key购买 nike

我有一个带有 DateTime 属性的模型,该属性在一个位置放置在隐藏的输入字段中。

@Html.HiddenFor(m => m.StartDate)

生成以下 HTML:

<input id="StartDate" name="StartDate" type="hidden" value="1/1/2011 12:00:00 AM" >

问题是时间包含在值中,而我的自定义日期验证需要 ##/##/#### 格式的日期,从而导致验证失败。我可以轻松地更改自定义日期验证来使这种情况发挥作用,但我宁愿这样做,以便隐藏字段以正确的格式显示值。

我尝试在模型属性上使用 DisplayFormat 属性,但这似乎并没有改变隐藏输入的格式。

我确实意识到我可以手动创建隐藏输入并调用 StartDate.ToString("MM/dd/yyyy") 来获取该值,但我也在动态生成的项目列表中使用此模型,因此输入是已索引并具有像 Collection[Some-Guid].StartDate 这样的 id,这将使找出输入的 id 和名称变得更加困难。

在将页面上的字段呈现为隐藏输入时,是否可以使“值”值以特定格式显示?

最佳答案

您可以使用自定义编辑器模板:

public class MyViewModel
{
[UIHint("MyHiddenDate")]
public DateTime Date { get; set; }
}

然后定义~/Views/Shared/EditorTemplates/MyHiddenDate.cshtml:

@model DateTime
@Html.Hidden("", Model.ToString("dd/MM/yyyy"))

最后在您的 View 中使用 EditorFor 帮助器:

@model MyViewModel
@Html.EditorFor(x => x.Date)

这将为 View 模型的 Date 属性呈现自定义编辑器模板,从而使用所需格式呈现带有值的隐藏字段。

关于asp.net-mvc - 隐藏日期时间的 ASP.NET MVC 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8305262/

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