我输入了选择日期的地方。
这是输入代码
<div class="input-group date" style="margin: 0 auto;padding-top: 20px;" id="picker">
<input id="startAppointment" type="text" class="form-control" placeholder="Enter Start Appointment" />
<span style="width: 20px; height: 33px;" class="input-group-addon">
<span class="glyphicon glyphicon-calendar" style="color: #1d69b4;background:transparent !important;border:none;"></span>
</span>
</div>
这是我将数据传递给后端的代码
<script>
$('#save_appointment').click(function () {
addAppointmentInternal();
});
function addAppointmentInternal() {
$.ajax({
type: 'Post',
dataType: 'Json',
data: {
Start: $('#startAppointment').val(),
End: $('#endAppointment').val(),
Title: $('#title').val(),
Date:$('#startAppointment').val(moment().toDate())
},
url: '@Url.Action("AddingInternalAppointment","Calendar")',
success: function (da) {
if (da.Result === "Success") {
$('#calendar').fullCalendar('refetchEvents');
$("#myModal2").modal();
} else {
alert('Error' + da.Message);
}
},
error: function(da) {
alert('Error');
}
});
}
在后端我有这段代码
public ActionResult AddingInternalAppointment(string Start, string End, string Title)
{
DateTime dt = DateTime.Today;
Appointment appointmentInt = new Appointment()
{
Start_appointment = Start,
End_appointment = End,
Title = Title,
Type_of_appointment = "Internal",
Date = dt
};
db.Appointments.Add(appointmentInt);
db.SaveChanges();
return Json(new { Result = "Success", Message = "Saved Successfully" });
}
现在我在后端添加Date作为Date对象,但是我需要从前端传递数据并以8/30/2017
格式date
格式写入。
我尝试这样做Date:$('#startAppointment').val(moment().toDate())
,但它不起作用。
我怎么能这样做?
答案 0 :(得分:1)
假设你有这个动作:
public ActionResult AddingInternalAppointment(string Start, string End, string Title, DateTime Date)
{
...
}
使用从Date: $('#startAppointment').val(moment().toDate())
分配转换日期的startAppointment
,moment
元素,而不转换为C#兼容DateTime
格式(仍使用JavaScript格式,这将导致无效值错误)。您需要在没有任何参数的情况下使用jQuery选择器中的val
&amp;将提取的值转换为基于moment
的格式:
moment($('#startAppointment').val())
然后,添加toISOString
方法可确保moment
处理转换后的日期值&amp;以UTC格式发送,在AJAX调用期间由DateTime
参数识别:
Date: moment($('#startAppointment').val()).toISOString()
之后,您可以使用ToString
或String.Format
将提交日期转换为美国日期格式进行展示。