ASP.NET MVC 3: аннотация данных DisplayFormat для TimeSpan, вызывающая исключение FormatException - PullRequest
3 голосов
/ 19 февраля 2012

В моей модели поле Длина представляет собой интервал времени со следующей аннотацией данных:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{h\\:mm}")]

, которую я использовал согласно предложению здесь .Я хочу, чтобы в появившемся текстовом поле отображалось текущее значение длины в часах и минутах.

Однако в 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().Я не уверен, что мне здесь не хватает, у кого-нибудь есть предложения?Спасибо!

1 Ответ

3 голосов
/ 19 февраля 2012

Ваш спецификатор формата нуждается в идентификаторе позиции:

{0:h\\:mm}
...