【发布时间】:2018-04-06 10:21:19
【问题描述】:
我正在寻找显示允许用户编辑日期时间值的 TextBox 的正确方法。
目前我可以使用 DataAnnotations 显示我想要的值。
[DisplayFormat(DataFormatString = "{0:{0:HH:mm:ss dd/MM/yyyy}}", ApplyFormatInEditMode = true)]
public DateTime TimeStamp_Start { get; set; }
MVC/剃刀:
@Html.EditorFor(m => m.TimeStamp_Start)
然后我得到正确的视觉效果:
但是现在的问题是这个可以编辑成错误的格式,如下:
我如何创建一个@Html.EditorFor 对象来显示第一张图片中的日期,但在编辑时只允许填写这种格式:{xx/xx/xxxx xx:xx:xx}?
我希望日期格式的 '/'、':' 和 ' '(空格)值保持不变,用户键入的文本可以填补空白。 我在其他网站上看到过,但似乎找不到它的 MVC/Razor 代码。
【问题讨论】:
-
你需要使用 jquery datetime 插件,或者渲染浏览器 HTML-5 datetimepicker(仅部分浏览器支持)
-
@StephenMuecke 来自 jquery 的 datetimepickers 需要做很多工作才能正确,而且它不适合网站的设计。所以这种方式我想做一个简单快速的使用方式。
-
添加一个脚本和一行代码工作量太大?您无法控制用户在文本框中输入的内容(至少没有 javascript),但您始终可以使用 mvc 内置的客户端验证来验证格式
-
是的,但是我已经查看了如何将时间变量也添加到日期选择器中,整个默认设置使它看起来很难看,并且不适合网站的设计。我已经用预定义的固定格式看过它 1000 次,我想实现该解决方案。我去看看我是否可以自己用javascript编写来创建这样一个固定的解决方案。
标签: c# razor asp.net-mvc-5 editorformodel