将当前日期设置为默认值 DRopdownListFor

本文关键字:默认值 DRopdownListFor 设置 当前日期 | 更新日期: 2023-09-27 18:37:14

正如问题所说,我想将 Html.DropdownList 中的默认值设置为格式为 yyyy-mm-dd 的实际日期,但我不知道如何设置它:

这是我的控制器视图包:

foreach (var item in db.Pos.Select(l => l.Fecha).Distinct())
        {
           dateday = item.ToString("yyyy-MM-dd");
           lines = dateday.Split(' ')[0];
           listItem2.Add(lines);
        }
        var fechas = new SelectList(listItem2.ToList());
        ViewBag.Fechas = fechas;

这是我的View HtmlDRopdown:

     @Html.DropDownList("Fechas", "Todas")

如何根据实际日期设置浮动值?

将当前日期设置为默认值 DRopdownListFor

假设 LINQ 表达式b.Pos.Select(l => l.Fecha).Distinct()返回 DateTime 的集合。

var list = new List<SelectListItem>();
var today = DateTime.Now;
foreach (var item in db.Pos.Select(l => l.Fecha).Distinct())
{
   var dateday = item.ToString("yyyy-MM-dd");
   var listItem = new SelectListItem { Value = dateday, Text = dateday };
   listItem.Selected = today.Day == item.Day;
   list.Add(listItem);
}
ViewBag.Fechas = list;

在你看来,

@Html.DropDownList("Fechas")

这将生成一个名为"Fechas"的 SELECT 元素,其中包含日期(以我们指定的格式),并将选择今天的日期。

如果希望 select 元素具有不同的名称,则可以考虑使用不同的重载,例如

@Html.DropDownList("MyCustomElementName",ViewBag.Fechas as List<SelectListItem>)

我个人宁愿不使用ViewBag!我喜欢使用视图模型和DropDownListFor helper方法。