将时间跨度格式化为 TotalMilliseconds
Format timespan as TotalMilliseconds
我正在编写一个简单的 ASP.Net 页面,其中有几个字段,其中一个用于超时。我想将它显示为毫秒(但仍然希望有一个时间跨度而不是 int/string)。我正在编写以下代码:
<input asp-for="Entry.Interval" asp-format="{0:fff}" type="text" class="form-control">
但是这里有个问题。此格式未按预期工作。我期望 TimeSpan.FromMinutes(2).ToString("fff")
到 return 120000
,但它 returns 000
。这显然是因为 TimeSpan
使用 Milliseconds
属性,在这个例子中它是零,但我需要 TotalMilliseconds
。
是否有某种格式强制以所需单位显示整个 TimeSpan
?我真的不想写一个整数字段并手动映射到这个 TimeSpan
.
您可以定义另一个 属性 仅用于绑定
class Entry
{
public TimeSpan Interval { get; set; }
public int IntervalMS
{
get { return (int)Interval.TotalMilliseconds; }
set { Interval = TimeSpan.FromMilliseconds(value); }
}
//other stuff...
}
然后
<input asp-for="Entry.IntervalMs" type="text" class="form-control">
我正在编写一个简单的 ASP.Net 页面,其中有几个字段,其中一个用于超时。我想将它显示为毫秒(但仍然希望有一个时间跨度而不是 int/string)。我正在编写以下代码:
<input asp-for="Entry.Interval" asp-format="{0:fff}" type="text" class="form-control">
但是这里有个问题。此格式未按预期工作。我期望 TimeSpan.FromMinutes(2).ToString("fff")
到 return 120000
,但它 returns 000
。这显然是因为 TimeSpan
使用 Milliseconds
属性,在这个例子中它是零,但我需要 TotalMilliseconds
。
是否有某种格式强制以所需单位显示整个 TimeSpan
?我真的不想写一个整数字段并手动映射到这个 TimeSpan
.
您可以定义另一个 属性 仅用于绑定
class Entry
{
public TimeSpan Interval { get; set; }
public int IntervalMS
{
get { return (int)Interval.TotalMilliseconds; }
set { Interval = TimeSpan.FromMilliseconds(value); }
}
//other stuff...
}
然后
<input asp-for="Entry.IntervalMs" type="text" class="form-control">