.net - Razor 下拉列表

标签 .net asp.net-mvc-3 razor cultureinfo selectlist

我想添加一个 dropdoenlist 几个月。我想要选择像一月/二月这样的值..我创建了一个像这样的操作:

     public DropDownList  GetMyMonthList()
     {
        DropDownList MyddlMonthList = new DropDownList();
        DateTime month = Convert.ToDateTime("1/1/2000");
        for (int i = 0; i < 12; i++)
        {

            DateTime NextMont = month.AddMonths(i);
            ListItem list = new ListItem();
            list.Text = NextMont.ToString("MMMM");
            list.Value = NextMont.Month.ToString();
            MyddlMonthList.Items.Add(list);
        }
        return MyddlMonthList;

    }

我称之为

  ViewBag.months = pm.GetMyMonthList();

在我看来

  @Html.DropDownListFor(model => model.rent_month,new    SelectList(ViewBag.months          as        System.Collections.IEnumerable, "Text","value"),
        "Select Month")

它给出错误值不能为空。 参数名称:items

我可能犯了一个愚蠢的错误。我对 ASP.NET MVC3 很陌生。请指出我的错误......提前致谢

最佳答案

从错误消息来看,发生的情况是从 DropDownListIEnumerable 的转换因返回 null 而默默失败。我建议更改 GetMyMonthList 以返回 IEnumerable,然后将其直接传递到 SelectList 的构造函数中。

public IEnumerable<SelectListItem> GetMyMonthList()
{
    var MyddlMonthList = new List<SelectListItem>();
    DateTime month = Convert.ToDateTime("1/1/2000");
    for (int i = 0; i < 12; i++)
    {
        DateTime NextMont = month.AddMonths(i);
        var list = new SelectListItem();
        list.Text = NextMont.ToString("MMMM");
        list.Value = NextMont.ToString("MMMM");
        MyddlMonthList.Add(list);
    }
    return MyddlMonthList;
}

编辑

您还可以从 CultureInfo 获取月份名称。

public IEnumerable<SelectListItem> GetMyMonthList()
{
    return CultureInfo.CurrentCulture.DateTimeFormat.MonthNames
        .Select(m => new SelectListItem() { Text = m, Value = m });
}

关于.net - Razor 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10464610/

相关文章:

c# - 为什么 C# .NET SortedList<T1, T2> 实际上没有 ElementAt?

c# - 多个组合框的相同内容

c# - 如何更改 WinForms Treeview 控件中用于内联编辑节点文本的字体?

asp.net-mvc - 与Razor捆绑在一起时,Dockerized的ASP.NET MVC5引发COMException

asp.net-mvc - 在配置了虚拟目录的 MVC 中显示图像时出现问题

用于修改和检索 SQL Azure 数据的 C# .Net 桌面应用程序?

asp.net-mvc - 如何获取用户重定向到MVC4中当前操作的操作名称

c# - @Html.ValidationMessageFor 在我尝试编辑项目时崩溃

asp.net-mvc-3 - URL.Action 在构造 URL 时包含 id

visual-studio-2010 - 为什么 Visual Studio 不能预览类似于 asp/aspx 页面的 MVC Razor View (.cshtml) 页面?