将timespan格式化为TotalMilliseconds

时间:2016-08-29 11:00:01

标签: c# .net datetime string-formatting timespan

我正在编写一个简单的ASP.Net页面,其中有几个字段,其中一个用于超时。我想以毫秒显示它(但仍希望有一个时间跨度而不是int / string)。我正在编写以下代码:

<input asp-for="Entry.Interval" asp-format="{0:fff}" type="text" class="form-control"> 

但这是一个问题。此格式无法按预期工作。我希望TimeSpan.FromMinutes(2).ToString("fff")返回120000,但会返回000。很明显,因为TimeSpan使用Milliseconds属性,在此示例中为零,但我需要TotalMilliseconds

是否有某些格式强制显示所需单位的整个TimeSpan?我真的不想写一个整数字段并在TimeSpan上手动映射。

1 个答案:

答案 0 :(得分:4)

您可以定义另一个属性,仅用于绑定

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">