私はいくつかのフィールドを持つシンプルなASP.Netページを作成しています。そのうちの1つはタイムアウト用です。私はミリ秒単位で表示したい(しかし、int/stringではなくtimepanを使いたい)。私は次のコードを書いています:フォーマットのタイムパンをTotalMillisecondsとして
<input asp-for="Entry.Interval" asp-format="{0:fff}" type="text" class="form-control">
しかし、ここに問題があります。この形式は期待どおりに機能しません。 TimeSpan.FromMinutes(2).ToString("fff")
は120000
を返しますが、000
を返します。 TimeSpan
はMilliseconds
というプロパティを使用しています(この例では0ですが、TotalMilliseconds
が必要です)。
TimeSpan
全体を希望の単位で表示するような形式はありますか?私は実際に整数フィールドを書いて、このTimeSpan
に手動でマップしたくありません。
'.ToString( "FFF")を結合に使用される別のプロパティを定義することができ、' "としてフォーマット全体' TimeSpan'を返します。 fff "はフレーム/ミリ秒から3文字です。同様に、あなたが "ss"を印刷した場合、秒は2文字になります。あなたは 'TotalMilliseconds'が必要だと言っています。これは正しく、' 120000'を 'double'として与えます。あなたはどこに苦しんでいるのか分かりません。あなたの希望する出力は何ですか? –
@GeoffJamesバインドする値を指定しているときは、propertyやメソッドを呼び出すことはできません。 'asp-for =" Entry.Interval "と書くと、そこから値をとり、' format'を適用してレンダリングします。次に、逆順でそれを実行し、値を解析して最終結果を返します。私は 'TotalMilliseconds'を使うことはできません。なぜなら、この場合は正しく値をレンダリングしますが、ポストバックでは解析できないからです。 –
私は、ページ上に 'Entry.Interval'(2分)を' 120000'と表示しようとしていますか? 'Entry.Interval'とはどんなタイプですか? 'TimeSpan'? –