在我的模型中,字段Length是TimeSpan,带有以下数据注释:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{h\\:mm}")]
我根据建议使用here。我希望生成的文本框以小时和分钟显示长度的当前值。
然而,在MVC 3中,这似乎不再起作用,因为它会导致FormatException
。无论Length是否具有现有值,都会发生此异常。
Visual Studio添加,“将字符串转换为DateTime时,解析字符串以在将每个变量放入DateTime对象之前获取日期。”我甚至都不知道这意味着什么。我的变量是TimeSpan,而不是字符串,那么为什么它首先尝试进行字符串转换?报告异常的对话框提供了死链接。
这是我视图中的代码:
<div class="editor-label">
@Html.LabelFor(model => model.Length)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Length)
@Html.ValidationMessageFor(model => model.Length)
</div>
例外情况发生在Html.EditorFor()
。我不确定我在这里缺少什么,有没有人有任何建议?谢谢!
答案 0 :(得分:3)
您的格式说明符需要位置标识符:
{0:h\\:mm}