C# 如何在MVC Razor中显示时间跨度
所以我有一个视频的持续时间,以秒为单位,我想在Razor中显示这个持续时间 目前我正在使用C# 如何在MVC Razor中显示时间跨度,c#,asp.net-mvc,asp.net-mvc-3,razor,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,所以我有一个视频的持续时间,以秒为单位,我想在Razor中显示这个持续时间 目前我正在使用 @TimeSpan.FromSeconds(item.Duration).ToString() 但是,我使用的其余代码使用 @Html.DisplayFor(modelItem => item.Description) 是否有方法获取持续时间(当前为int)以显示时间跨度?使用@Html.DisplayFor语法。item.duration正在从实体框架模型中提取,该模型在数据库中作为int保存
@TimeSpan.FromSeconds(item.Duration).ToString()
但是,我使用的其余代码使用
@Html.DisplayFor(modelItem => item.Description)
是否有方法获取持续时间(当前为int)以显示时间跨度?使用
@Html.DisplayFor
语法。item.duration正在从实体框架模型中提取,该模型在数据库中作为int保存 可以使用定义扩展模型类
public partial class My_class_that_has_been_created_by_EF {
public string Timespan {
get {
return Timespan.FromSeconds(Duration).ToString();
}
}
}
然后在您的视图中使用它
@Html.DisplayFor(modelItem => item.Timespan)
约翰
创建自己的显示模板。要执行此操作,请执行以下步骤:
@model TimeSpan
@string.Format("{0}:{1}:{2}", Model.Hours, Model.Minutes, Model.Seconds)
在您的视图中调用为
@Html.DisplayFor(m => m.MyTimeSpanProperty)
这将显示为3:24:16
等
这就是它的全部内容(虽然它假定您将传入一个TimeSpan类型的属性,因此如果可能,请查看您是否可以对您的模型进行微小更改!!)您应该利用ASP.NET MVC中的
数据注释
命名空间和显示模板
UIHint
属性屏蔽属性,并在Models/YourVideoModel.cs中将模板设置为VideoDuration
DisplayTemplates
)
@Html.DisplayFor(m => m.Duration)
再加一句。将
TimeSpan.cshtml
中的格式行设置为“{0}:{1:00}:{2:00}”
,以确保分钟和秒的填充为两位数<代码>1:4:7变为<代码>1:04:07格式00:00:00显示为默认格式“DisplayFor”。为了确保您确实影响了显示,您可能需要使用一些不同的字符,以确保您不仅仅看到默认行为。
[UIHint("VideoDuration")]
public int Duration { get; set; }
@model int?
@string.Format("{0:g}", TimeSpan.FromSeconds(Model))
@Html.DisplayFor(m => m.Duration)