現在我正在尋找一個免費的可靠的TimePicker控件,用於我的MVC應用程序,直到我厭倦了找到一個,並決定讓我自己使用C#..什麼是在自定義TimePicker中在C#中聲明時間變量的最佳方式
我這樣做,它工作正常(隨意複製或重複使用..):
public static class OpeningTimesList
{
/// <summary>
/// Provides a listItems of opening hours to use in an HTML DropDownListFor helper.
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
public static List<SelectListItem> GetOpeningHours(string time)
{
var selectOptions = new string[]
{
"07:00",
"07:30",
"08:00",
"08:30",
"09:00",
"09:30",
"10:00",
"10:30",
"11:00",
"11:30",
"12:00",
"12:30",
"13:00",
"13:30",
"14:00",
"14:30",
"15:00",
"15:30",
"16:00",
"16:30",
"17:00",
"17:30",
"18:00",
"18:30",
"19:00",
"19:30",
"20:00",
"20:30",
"21:00",
"21:30",
"22:00",
"22:30"
};
return GetDropDownList(selectOptions, time);
}
/// <summary>
/// Gets List Items in Text only, instead of a combination of text and value.
/// </summary>
/// <param name="selectOptions"></param>
/// <param name="selectedOption"></param>
/// <returns></returns>
private static List<SelectListItem> GetDropDownList(string[] selectOptions, string selectedOption)
{
var listItems = new List<SelectListItem>();
foreach (var option in selectOptions)
{
listItems.Add(new SelectListItem
{
Text = option,
Selected = string.Compare(option, selectedOption, StringComparison.CurrentCultureIgnoreCase) == 0
});
}
return listItems;
}
}
使用年齡在MVC剃刀:
@Html.DropDownListFor(x => x.StartFrom, Website.ViewModels.ViewHelpers.OpeningTimesList.GetOpeningHours(Model.StartFrom.ToString()))
我的問題是我的StartFrom
屬性不是string
;這是一個TimeSpan
(或可能是它應該是一個DateTime
..我確定轉換ToString()
或投在後面的代碼,但理想情況下,我不應該這樣做。使用String
時間項很容易 - 但我應該用什麼來使這更好;我用DateTime
還是我用TimeSpan
因此,在一個行:你會用什麼來表示一個時間值,如 - 例如:08:30你會使用一個TimeSpan
或DateTime
。?
非常感謝。
我覺得'DateTime'比'TimeSpan'更合適。 –
如果你只使用時間,使用TimeSpan我認爲 –
TimeSpan對此很好。您可以隨時使用: TimeSpan.Parse(yourListItemString) 將其製作爲TimeSpan並附加到任何Date(DateTime.Date)以創建整個DateTime值。 –