【问题标题】:Dropdown For next 10 years下拉列表 未来 10 年
【发布时间】:2013-11-01 08:03:49
【问题描述】:

在 MVC4(视图)中创建显示当前年份和未来 10 年的下拉列表的最佳方法是什么?我应该创建一个枚举,然后将其包含在我的视图模型中并创建一个该枚举类型的变量吗?

【问题讨论】:

  • 你有没有尝试过?也许是一个从 DateTime.Now.Year 开始并递增 9 次的 for 循环。您如何看待 Razor 语法?
  • 您的枚举解决方案需要在每年 12 月 31 日重新部署您的应用程序。

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


【解决方案1】:
Enumerable.Range(DateTime.Now.Year, 10)

将为您提供数字,然后您可以在 DropDownList 的 SelectList() 构造函数中使用这些数字

【讨论】:

    【解决方案2】:

    当您使用 Enum 时,它将进行硬编码。每年年底,您都应该重新部署解决方案。因此最好在业务层中使用以下代码并推送到视图层,然后基于服务器日期每个用户可以追溯未来 10 年。

     IList<int> years= Enumerable.Range(DateTime.Now.Year, 10).ToList();
    

    【讨论】:

      【解决方案3】:

      对于剃须刀,您可以使用以下代码

      @Html.DropDownList("Year", Enumerable.Range(DateTime.Now.Year, 10).ToList(), "-- Select Year --")
      

      【讨论】:

        【解决方案4】:

        添加“新选择列表”:

        @Html.DropDownList("年份", new SelectList(Enumerable.Range(DateTime.Now.Year, 10).ToList()), "-- 选择年份--")

        【讨论】:

        • 请至少基本注意格式化您的答案。否则你可能会被否决。
        • 另外,用接受答案发布一个两年前的问题的新答案几乎没有任何意义。
        猜你喜欢
        • 1970-01-01
        • 2012-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        • 2013-02-07
        相关资源
        最近更新 更多