我正在使用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>