加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 20:46:59 所属栏目:asp.Net 来源:网络整理
导读:我有一个带有DateTime属性的模型,它在一个地方放置在一个隐藏的输入字段中. @Html.HiddenFor(m = m.StartDate) 这会生成以下HTML: input id="StartDate" name="StartDate" type="hidden" value="1/1/2011 12:00:00 AM" 问题是时间包含在值中,我的自定义日期
我有一个带有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"))

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读