View MVC C#中的格式异常

时间:2015-05-16 16:24:51

标签: c# asp.net-mvc exception format

以下是从我的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中,它工作得很好!

请帮忙吗?非常感激。

2 个答案:

答案 0 :(得分:2)

我很有兴趣看到你的例子。您使用的是什么版本的MVC?在EditExtension.EditorForEditorExtensions.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>