gpt4 book ai didi

asp.net-mvc-3 - 使用从 ViewModel 和 html 类属性设置的日期格式的输入

转载 作者:行者123 更新时间:2023-12-04 17:12:08 27 4
gpt4 key购买 nike

我正在 asp.net mvc3 中使用 Razor View 引擎。

现在,我需要输入 DateTime它应该以固定格式显示值(比如 dd-MMM-yyyy )。所以我可以这样做:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MMM-yyyy}")]
public DateTime StartDate { get; set; }

在 View 中:
@Html.EditorFor(model => model.StartDate)

但是我需要在输入中添加一个类。我认为这是不可能的 EditorFor .
所以我可以用
@Html.TextBoxFor(model => model.StartDate, new { @class = "Date" })

但是在这种情况下显示格式不起作用。
Model可以为空。所以,
@Html.TextBox("StartDate", string.Format("{0:dd-MMM-yyyy}", Model.StartDate))

会扔 NullReferenceException .

最佳答案

奥菲莉亚的方式是我的更快版本。但是如果您的应用程序中有几个日期字段,这种方式很有用。所以这是我喜欢的方式:

-> 在您的 解决方案浏览器 , 在 内创建一个文件夹已分享 称为“ 编辑器模板

-> 在那里,添加一个新的( 不是 强类型)局部 View .称之为“DateTime”。

-> 打开这个 View ,去掉里面的所有代码,然后把下面的代码扔进去:

@model System.DateTime
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "date" /* + any other html attributes you want */ })

-> 在您的 View 模型 ,您的日期字段应如下所示:
[Display(Name = "My Date:"), DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime MyDate { get; set; }

-> 在您的 主 View , 以及任何您想使用日期字段的 View ,您都可以使用 EditorFor在属性(property)上,像这样:
@Html.EditorFor(m => m.MyDate)

您可以在 Controller 中初始化日期字段或在 View 模型的构造函数中设置默认日期。

关于asp.net-mvc-3 - 使用从 ViewModel 和 html 类属性设置的日期格式的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089316/

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