我创建了一个非常简单的下拉列表,它基本上显示了不同的时间,它们的值是每次午夜过后的分钟。例如:
Value Time
60 01:00 AM
75 01:15 PM
90 01:30 PM
105 01:45 PM
120 02:00 PM
等
问题是,我需要在我的应用程序中的一大堆视图和控制器中使用相同的下拉列表。在阅读了几篇文章后,似乎我需要为此创建一个静态类?但是所有的例子似乎都比我实际需要的更复杂。我应该为此创建一个IList
吗?
答案 0 :(得分:1)
您可以尝试以下方法
@Html.DropDownList("TimeList", DropdownData.GetTimeList("75"), new { @class = "form-control" })
{{1}}
答案 1 :(得分:0)
如果您需要一个值Global
,那么是的,您希望它在C#中为public static
。我建议将其放在public static class
中,以便您可以按名称访问它。
public static class MyData
{
public static IEnumerable<DateTime> ValueTimes { get; set;} //(or IList or List<T> or whatever you want)
}
public class IDoStuff
{
public DateTime myTime { get; set; }
public IDoStuff(DateTime d) //constructor
{
if(ValueTimes.IndexOf(d) != -1) //-1 says I no findie
myTime = d;
else
throw new ApplicationException("That's not a valid time, dummy");
}
}
看,轻松腻。此外,使用DateTime
或TimeSpan
,即使它们都在同一天。不要用strings
来表示时间,你就是这么麻烦。
编辑:当我提出解决方案时,您发布了示例数据。鉴于此:
Value Time
60 01:00 AM
75 01:15 PM
90 01:30 PM
105 01:45 PM
120 02:00 PM
我认为你实际上可以这样做并跳过静态变量:
public static Timespan GetTime(int value)
{
return Timespan.FromMinutes(value);
}