Вот мое решение, которое очень похоже на решение @ jesse-brown (принятый ответ)
VB.NET:
В классе глобальных функций:
Public Shared Function GetMonthList() As Generic.Dictionary(Of String, String)
Dim months As New Generic.Dictionary(Of String, String)()
For m As Int32 = 1 To 12
months.Add(String.Format("{0:0#}", m), CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(m))
Next
Return months
End Function
На странице ASPX:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ddMonth.DataSource = GlobalFunctions.GetMonthList()
ddMonth.DataValueField = "Key"
ddMonth.DataTextField = "Value"
ddMonth.DataBind()
End Sub
Эта реализация реализована в VB.NET, потому что именно это и используется этим веб-приложением (устаревшее), однако большое спасибо за примеры на C # (мой предпочтительный язык), я публикую здесь VB.NET, чтобы помочь сообществу VB.NET.