我有下拉列表
@Html.DropDownListFor(x => x.SelectedMonth,Model.getMonths(), new { @id = "ddlMonth"})
现在,我想在数据库"week_calendar"表的下拉列表中显示月份名称,为此我编写了linq查询,如
public SelectList getMonths()
{
var monthslist = (from week in res.WEEK_CALENDER where week.WEEK_START_DT.Month <= DateTime.Now.Month select new { week.WEEK_START_DT.Month }).Distinct().AsEnumerable().Select(m => new SelectListItem() { Text =m.Month.ToString(), Value = m.Month.ToString() });
return new SelectList(monthslist, "Value", "Text", month_num); ;
}
但是这里的下拉菜单将只显示月份数字,但我想显示基于月份数字的月份名称。
你也可以这样试试
public SelectList getMonths()
{
var monthslist = (from week in res.WEEK_CALENDER where week.WEEK_START_DT.Month <= DateTime.Now.Month select new { week.WEEK_START_DT.Month }).Distinct().AsEnumerable().Select(m => new SelectListItem() { Text =(convert.ToDateTime(2000,m,1)).ToString("MMMM"), Value = (convert.ToDateTime(2000,m,1)).ToString("MMMM") });
return new SelectList(monthslist, "Value", "Text", month_num); ;
}
试试这个
让我们试试
短名月,例如Jun
Text = m.ToString("MMM")
全名为月,例如June
Text = m.ToString("MMMM")
而不是Text = m.Month.ToString()
试试这个:
public SelectList getMonths()
{
var monthslist = (from week in res.WEEK_CALENDER where week.WEEK_START_DT.Month <= DateTime.Now.Month select new { week.WEEK_START_DT.Month }).Distinct().AsEnumerable().Select(m => new SelectListItem() { Text =m.Month.Value.ToString("MMMM"), Value = m.Month.Value.ToString("MMMM") });
return new SelectList(monthslist, "Value", "Text", month_num); ;
}
Do
Text = m.ToString("MMMM")
的
Text = m.Month.ToString()
另一个替代
var data = from i in Enumerable.Range(0, 12)
let now = DateTime.Now.AddMonths(i)
select new
{
MonthLabel = now.ToString("MMMM"),
Month = now.Month
};
获取月份名称