3

所以我正在使用 JQuery.datePicker 示例... http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerStartEnd.html

我的 Jquery 日历工作正常,但它只允许我一次输入 1 个日期并将其保存到数据库中。

我希望用户选择一个开始日期和多个日期,在日期和每一天循环到数据库。

一分钟有点迷失,任何帮助将不胜感激....

这是我的 ActionResult create()// 视图的一部分,它允许用户添加新的一天...

<form action ="ListHolidays" id="listHolidays" method="post">
@using (Html.BeginForm()) {
      @Html.ValidationSummary(true)
<fieldset>
    <legend>Holiday</legend>

    <div>
        @Html.LabelFor(model => model.PersonId, "Person")
    </div>

    <div>     
        @Html.DropDownListFor(model => model.PersonId,
                            new SelectList(ViewBag.Id, "Value", "Text"),
                            "---Select---"
                            )   
     @Html.ValidationMessageFor(model => model.PersonId)            
    </div>

    <div>
        @Html.LabelFor(model => model.HolidayDate)
    </div>

    <div>

        @Html.TextBoxFor(model => model.HolidayDate)

        @Html.TextBoxFor(model => model.endDate)
<script>

    $("#HolidayDate").addClass('date-pick');
    $("#endDate").addClass('date-pick');
        //$('.date-pick').datePicker//({dateFormat: 'dd-mm-yy'}).val();

        $(function () 
        {
            $('.date-pick').datePicker()
            $('#HolidayDate').bind('dpClosed',
                function (e, selectedDates) 
                {
                    var d = selectedDates[0];
                    if (d) 
                    {
                        d = new Date(d);
                        $('#endDate').dpSetStartDate(d.addDays(1).asString());
                    }
                }
        );
            $('#endDate').bind('dpClosed',
                function (e, selectedDates) 
                {
                    var d = selectedDates[0];
                    if (d) 
                    {
                        d = new Date(d);
                        $('#HolidayDate').dpSetEndDate(d.addDays(-1).asString());
                    }
                }
            );
        });



</script>

 @Html.ValidationMessageFor(model => model.HolidayDate)
    </div>

    <p>
        <input type="submit" value="Create"/>
    </p>

和我的 listHolidays 帖子:

[HttpPost]
public ActionResult listHolidays(Holiday holiday, int? PersonId, string HolidayDate, string endDate)
    {
        IList<DateTime> dates = new List<DateTime>();
        dates.Add(DateTime.Parse(HolidayDate));
        dates.Add(DateTime.Parse(endDate));
        List<DateTime> orderedDates = dates.OrderBy(d => d).ToList();

            for (int i = 0; i < orderedDates.Count; i++ )
            //if (ModelState.IsValid)
            {
                db.Holidays.AddObject(holiday);
                db.SaveChanges();
                return View();
            }

            return RedirectToAction("Index");
           // return View();
        }

问题在我的假期列表中,我不确定如何从开始到结束日期运行循环,并为每个记录添加一条新记录到数据库中。

请指教

4

1 回答 1

0

我将为您提供一个从开始日期迭代到结束日期的示例,然后您可以将其插入您的解决方案:

DateTime startDate = Convert.ToDateTime("1/1/2012"),
    endDate = Convert.ToDateTime("1/30/2012");

while (startDate < endDate)
{
    // do something here with the date

    startDate = startDate.AddDays(1);
}

现在,要注意的另一件事是,您实际上可以收到startDateand endDateDateTime因为 ASP.NET 将为您进行转换。如果其中一个可以为空,则只需将其类型设置为DateTime?.

于 2012-12-10T13:02:32.073 回答