为什么DropDown列表显示日期包括时间,而不仅仅是日期?

时间:2017-03-24 09:33:38

标签: asp.net-mvc entity-framework razor model-view-controller

我有Dates列表,并且在控制器中我为DropDown列表创建代码,在表格中我把日期设置为DATE格式,也在模型i配置ad dd / MM / yyyy,在下拉列表中我得到的日期包含时间,但是我需要在列表中的日期。

控制器中的代码:

ViewBag.Datum = new SelectList(db.tbl_relacii.Where(x => x.DatumR >= date), "DatumR", "DatumR");

视图中的代码:

@Html.DropDownList("Datum", null, htmlAttributes: new { @class = "form-control" })

型号代码:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
[Column(TypeName = "date")]
public DateTime DatumR { get; set; }

这是数据库中的数据:

 data in database

如何在DropDown列表中获取正确的数据

1 个答案:

答案 0 :(得分:1)

修改您的控制器代码,如下所示

   public ActionResult Create()
    {
        var date = DateTime.Now.Date;
        ViewBag.AgentID = new SelectList(db.tbl_agenti, "aID", "agent_ime");
        ViewBag.patnikID = new SelectList(db.tbl_patnici, "pID", "ime");
        ViewBag.stanicaDO = new SelectList(db.tbl_stanici, "sID", "stanica");
        ViewBag.stanicaOD = new SelectList(db.tbl_stanici, "sID", "stanica");
        var tempList = db.tbl_relacii.Where(x => x.DatumR >= date).ToList();
        var options = new List<SelectListItem>();
        foreach(var item in tempList)
        {
            options.Add(new SelectListItem() 
            { 
                Text = item.ToString("d"), 
                Value = item
            };  
        }
       ViewBag.Datum = options;

        return View();
    }

在您的视图中定义如下

 @Html.DropDownList("Datum", ViewBag.Datum as SelectList, "--Select--",
   new
   {
       @Id = "drpDatum",
       @class = "form-control"
   })
相关问题