【问题标题】:Current month in DropDownListFor by default in Asp.Net mvc [duplicate]默认情况下,Asp.Net mvc 中 DropDownListFor 中的当前月份 [重复]
【发布时间】:2018-08-31 23:45:47
【问题描述】:

我有月份'DropDownListFor,我想选择当前月份作为默认月份我尝试了这两个选项

@{
var currentMonth = month.FirstOrDefault(x => x.Id == DateTime.Now.Month).Id;
}

1.

@Html.DropDownListFor(x => x.monthId, new SelectList(month, "Id", "Name", currentMonth  ))

2.

 @Html.DropDownListFor(x => x.monthId, month.Select(x => new SelectListItem
 { Text = x.Name.ToString(), Value = x.Id.ToString(), Selected = (x.Id == currentMonth ?true:false)})),

但两者都不起作用。 我怎样才能实现我的目标?

【问题讨论】:

  • 为什么这个非常基本的问题被投了三遍?
  • 向我们展示您的模型?至少是使用视图的控制器操作
  • month 是什么,你有没有调试你的代码,currentMonth 变量不为空?
  • month 是一个 List,其中 Id 为 Value,Text 为 Name

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


【解决方案1】:

您的代码是正确的,Selected = (x.Id == currentMonth ?true:false)} 没有用,因为您绑定到模型的属性 monthId,而该属性可能是 null。因此,在设置 currentMonth 之后,在视图顶部添加以下代码,如下所示:

@{ 
    var currentMonth = month.FirstOrDefault(x => x.Id == DateTime.Now.Month).Id;
    Model.monthId = Model.monthId ?? currentMonth;
}

【讨论】:

    【解决方案2】:

    如果你想要一个选项标签,那么使用

    @Html.DropDownListFor(x => x.MonthId, new SelectList(month, "Id", "Name", Model.MonthId), "Select Month")
    

    否则

    @Html.DropDownListFor(x => x.MonthId, new SelectList(month, "Id", "Name", Model.MonthId))
    

    如果这也不起作用,请尝试在您的模型属性中分配月份 ID

    Model.MonthId = month.FirstOrDefault(x => x.Id == DateTime.Now.Month).Id;
    

    并按照上述步骤操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 2018-03-14
      相关资源
      最近更新 更多