我想以MM格式循环几个月,我这样做,但是几个月格式是1、2、3,...等,我希望格式为01,02,03我怎么做
<select id="CreditCardExpiryDateMonth" class="dropdown form-control">
@for (var iMonth = DateTime.Now.Month; iMonth <= 12; iMonth++)
{
<option value="@iMonth"@(DateTime.Now.Month == iMonth ? " selected" : "")>@iMonth</option>
}
</select>
任何建议
您可以使用 ToString
格式化int。
<select id="CreditCardExpiryDateMonth" class="dropdown form-control">
@for (var iMonth = 1; iMonth <= 12; iMonth++)
{
<option value="@iMonth"@(DateTime.Now.Month == iMonth ? " selected" : "")>@iMonth.ToString("00")</option>
}
</select>
由于您使用的是MVC,因此可以使用SelectList
和Html.DropdownList
帮助者填充您的下拉列表并预选一个值:
@Html.DropDownList("CreditCardExpiryDateMonth",
new SelectList(Enumerable.Range(1, 12).Select(a => new { Text = a.ToString("00"), Value = a }),
"Value",
"Text",
DateTime.Today.Month),
new { @class = "dropdown form-control" })
这是如何工作的:
-
@Html.DropDownList("CreditCardExpiryDateMonth")
:创建一个带有名称和ID的select
元素为:" CreditCardexexpiryDatemonth" DropDownList
过载中的第二个参数是SelectList
。我们通常会从数据库中获取此信息,并在控制器中分配给ViewBag
。但是在您的情况下,我们可以使用Enumerable.Range
生成12个数字并将它们格式化以适当的字符串。在SelectList
的超载中,第四参数是selectedValue
。这用于预选下拉菜单中的值。就您而言,这是今天的月份。最终参数是
htmlAttributes
。在这里,我们将class
添加到SELECT元素。
这种方法灵活且清洁。您的要求是否应该更改为使用全球化或其他内容显示月份名称,您只需要更改SelectList
逻辑。
要制作格式mm或01等,请尝试以下操作:
DateTime.Now.Month.ToString("d2")