以下是从我的View模型中获取的代码段:
[Display(Name = "Time")]
[Required(ErrorMessage = "Is required field. Format hh:mm (24 hour time)")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm}")]
public Nullable<System.TimeSpan> EventPerformance_Time { get; set; }
这是来自我的View.cshtml:
<div class="form-group">
@Html.LabelFor(model => model.EventPerformance_Time, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.EventPerformance_Time, "{0:HH:mm}", new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EventPerformance_Time, "", new { @class = "text-danger" })
</div>
</div>
当我运行项目时,我不断收到以下错误:
FormatException:输入字符串的格式不正确。
在@ Html.EditorFor .....等行
我尝试了很多不同的解决方案&#39;并且没有人工作,我对于什么是错误感到困惑,因为在另一个View Model中,它工作得很好!
请帮忙吗?非常感激。
答案 0 :(得分:2)
我很有兴趣看到你的例子。您使用的是什么版本的MVC?在EditExtension.EditorFor或EditorExtensions.EditorFor Methods文档中,我没有看到支持您的内容的方法签名。你可以沿着这些方向做一些事情Html.TextBoxFor formatting or Html.EditorFor htmlAttributes?
答案 1 :(得分:1)
此格式有效:&#34; {0:hh:mm:ss}&#34;
https://msdn.microsoft.com/en-us/library/ee372287%28v=vs.110%29.aspx
public class Test
{
[Display(Name = "Time")]
[Required(ErrorMessage = "Is required field. Format hh:mm (24 hour time)")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = @"{0:hh\:mm\:ss}")]
public Nullable<System.TimeSpan> EventPerformance_Time { get; set; }
}
<div>
@Html.LabelFor(m => m.EventPerformance_Time)
<div>
@Html.EditorFor(m => m.EventPerformance_Time)
</div>