Я пишу простую страницу ASP.Net, где у меня есть несколько полей, один из которых - для тайм-аута. Я хочу отображать его как миллисекунды (но все же хочу иметь временной интервал вместо int/string). Я пишу следующий код:Формат timespan as TotalMilliseconds
<input asp-for="Entry.Interval" asp-format="{0:fff}" type="text" class="form-control">
Но вот проблема. Этот формат работает не так, как ожидалось. Я ожидаю, что TimeSpan.FromMinutes(2).ToString("fff")
вернет 120000
, но он вернет 000
. Это obviosly becuase TimeSpan
использует Milliseconds
свойство, которое в этом примере равно нулю, но мне нужно TotalMilliseconds
.
Есть ли какой-то формат, который заставляет показывать целые TimeSpan
в желаемых единицах? Я действительно не хочу писать целое поле и сопоставлять его вручную на этом TimeSpan
.
Параметр '.ToString ("FFF")' возвращает все 'TimeSpan' отформатированный как" fff ", являющийся фреймами/миллисекундами до 3 символов. Аналогично, если вы напечатали «ss», вы получите секунды до 2 символов. Вы говорите, что вам нужно «TotalMilliseconds» - это правильно и даст вам «120000» как «double». Я не уверен, где вы боретесь? Каков ваш желаемый результат? –
@GeoffJames, когда вы указываете значение, подлежащее привязке, вы не можете вызывать свойства или методы. Когда я пишу 'asp-for =" Entry.Interval ", он принимает значение из него, затем применяет' format' и renders. Затем отправьте его, выполнив его в обратном порядке, разобрав значение и вернув окончательный результат. Я не могу использовать 'TotalMilliseconds', потому что в этом случае он корректно отображает значение, но не сможет проанализировать его при обратной передаче. –
Я вижу, поэтому вы хотите отобразить 'Entry.Interval' (2 минуты) как' 120000' на странице? Какой тип 'Entry.Interval'? 'TimeSpan'? –