如何从表单发送多个DateTime到控制器?

时间:2016-05-04 10:04:15

标签: javascript c# forms datetime

我正在使用RazorEngine从Model类生成一个表单。有一个列表或期间。

型号:

public IDictionary<string,DateofTrainingSession> TrainingMultiDatePeriod { get; set; }


public class DateofTrainingSession {
    public DateTime StartingDate { get; set; }
    public DateTime EndingDate { get; set; }
}

在表单中,可以使用Javacript添加多个TrainingMultiDatePeriod。但是,我的日期格式有问题。 C#不理解Js日期对象。

简而言之: 1 /如何发送多个期间? 2 /如何处理从JS到C#的日期对象?

谢谢,

斯特凡。

编辑(评论后添加的代码): Jquery的:

$('#buttonaddperiod').on('click', function () {
            //Add new period
            var enddate = new Date(getDate($('#TrEndDate').val()));
            var startingdate = new Date(getDate($('#TrStartDate').val()));

            if ((enddate.getTime() >= startingdate.getTime()) && $('#TrEndDate').val()!="" &&$('#TrEndDate').val()!="") {
                var index = new Date().getTime();
                var datedif = parseInt(new Number(enddate.getTime() / 86400000 - startingdate.getTime() / 86400000).toFixed(0)) + 1;

                $("#groupePeriode ul").append('<li><input type="datetime" hidden name="TrainingMultiDatePeriod[' + index + '].StartingDate" value="' +
                    startingdate.toLocaleDateString() + ' ' + startingdate.toLocaleTimeString() + '"><input type="datetime" hidden name="TrainingMultiDatePeriod[' + index + '].EndingDate" value="' +
                    enddate.toLocaleDateString() + ' ' + enddate.toLocaleTimeString() + '"><input hidden name="TrainingMultiDatePeriod[' + index + '].Id" value="-1"> <input value="' + startingdate.toLocaleDateString()
                + ' au ' + enddate.toLocaleDateString() + '" readonly class="liste verylong"/></li>');

                $("#groupeNbDay ul").append('<li><input value="' + datedif
                 + '" readonly class="liste short"/><a href="#">supprimer</a></li>');

HTML /剃须刀:

<td>
                    <div id="groupeNbDay" class="classique certifiante diplomante">
                        <ul>
                            @for (int i = 0; i < Model.NbDaysList.ToList().Count; i++)
                            {
                                var period = Model.TrainingMultiDatePeriod.ElementAt(i);
                                <li>
                                    <input value="@(Model.NbDaysList.ToList()[i])" readonly class="liste short">
                                    <a href="#">supprimer</a>

                                </li>
                            }

                        </ul>
                    </div>
                </td>

0 个答案:

没有答案