【问题标题】:How to create a month dropdown in "MM" format in asp.net MVC razor view?如何在 asp.net MVC razor 视图中以“MM”格式创建月份下拉列表?
【发布时间】:2017-09-26 16:30:49
【问题描述】:

我想用 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>

任何建议

【问题讨论】:

  • 如果现在是 9 月,您想显示所有 12 个月,但您希望 9 月在列表中排在第一位?
  • 您希望值或文本采用格式吗?还是两者兼而有之?

标签: c# asp.net .net asp.net-mvc razor


【解决方案1】:

您可以使用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>

【讨论】:

    【解决方案2】:

    由于您使用的是 MVC,因此您可以使用 SelectListHtml.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 为:“CreditCardExpiryDateMonth”的select 元素
    • DropDownList 重载中的第二个参数是SelectList。我们通常从数据库中获取这个并分配给控制器中的ViewBag。但在您的情况下,我们可以使用 Enumerable.Range 生成 12 个数字并将它们格式化为正确的字符串。在SelectList 的这个重载中,第四个参数是selectedValue。这用于在下拉列表中预先选择一个值。在你的情况下,它是今天的月份。

    • 最后一个参数是htmlAttributes。在这里,我们将class 添加到选择元素中。

    这种方法灵活且简洁。如果您的要求更改为显示带有全球化或其他内容的月份名称,您只需更改 SelectList 逻辑。

    【讨论】:

      【解决方案3】:

      要制作 MM 或 01 等格式,试试这个:

      DateTime.Now.Month.ToString("d2")
      

      【讨论】:

      • OP 需要将iMonthint)格式化为两位数,而不是DateTime.Now
      猜你喜欢
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多