如何创建下30个日期的下拉列表?

时间:2017-04-22 17:41:10

标签: c# asp.net-mvc drop-down-menu

我正在尝试在MVC中创建一个下拉列表,显示接下来的30个日期,并将所选日期传递给构造函数,其中包含事件的其他详细信息。以下是我目前的情况,但它不起作用。我查看了dropdownlistfor但不了解VisualStudio中的intellisense

在我的模特中:

     public static List<DateTime> GetLstOfDates()
    {

        List<DateTime> dateList = new List<DateTime>();
        dateList =  Enumerable.Range(0, 30).Select(d => DateTime.Today.AddDays(d)).ToList();

        return dateList;

在我的控制器中:

            // GET: Events/Create
    public ActionResult Create()
    {
        ViewBag.OrganizationId = new SelectList(db.Organizations, "OrganizationId", "OrganizationName");

        ViewBag.Dates = Event.GetLstOfDates ();

        return View();
    }

并在我的创建视图中:

 @Html.Label("Select Date", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownList("Date", (SelectList)ViewBag.Dates, htmlAttributes: new { @class = "form-control" })

    </div>

1 个答案:

答案 0 :(得分:0)

这是你如何使用DropDownListFor 在您的控制器中

  public ActionResult Index()
        {            
            List<int> ListOfAnyThing = new List<int>() { 1,5,7,8,9,2 };
            ViewBag.MyList = new SelectList(ListOfAnyThing);
            return View();
        }

在你的视图中

@Html.DropDownListFor(m => m.MyProperty, ViewBag.MyList as IEnumerable<SelectListItem>)

这种方式您在下拉列表中选择的值将被分配给您要发送回控制器的模型的属性MyProperty