C# 使用jQuery.timepicker仅在ASP.NET MVC中节省时间
当我单击保存时,我在jquery.timepicker插件中选择的时间在ASP.NET MVC发送到服务器端时为空。。。 当我调试代码时,发现没有数据传递到StartTime和EndTime的服务器端。。 这是我调试代码时的屏幕截图,它返回null 这是我选择时间的UI 这是我的密码C# 使用jQuery.timepicker仅在ASP.NET MVC中节省时间,c#,jquery,asp.net-mvc,razor,timepicker,C#,Jquery,Asp.net Mvc,Razor,Timepicker,当我单击保存时,我在jquery.timepicker插件中选择的时间在ASP.NET MVC发送到服务器端时为空。。。 当我调试代码时,发现没有数据传递到StartTime和EndTime的服务器端。。 这是我调试代码时的屏幕截图,它返回null 这是我选择时间的UI 这是我的密码 [HttpPost] public ActionResult CreateLeaveApplications(LeaveApplications applications, string Date)
[HttpPost]
public ActionResult CreateLeaveApplications(LeaveApplications applications, string Date)
{
if(ModelState.IsValid)
{
var leavePeriodType = applications.LeavePeriodTypeID;
LeaveApplications leave = new LeaveApplications();
if (leavePeriodType == 3)
{
leave.StartDate = applications.StartDate;
leave.EndDate = applications.EndDate;
}
else if(leavePeriodType == 2)
{
leave.StartDate = Convert.ToDateTime(Date);
leave.EndDate = Convert.ToDateTime(Date);
leave.Cycle = applications.Cycle;
}
else if(leavePeriodType == 1)
{
leave.StartDate = Convert.ToDateTime(Date);
leave.EndDate = Convert.ToDateTime(Date);
leave.StartTime = applications.StartTime;
leave.EndTime = applications.EndTime;
}
leave.EmployeeID = applications.EmployeeID;
leave.DateApplied = DateTime.Now;
leave.LeavePeriodTypeID = applications.LeavePeriodTypeID;
leave.LeaveTypeID = applications.LeaveTypeID;
leave.Reason = applications.Reason;
leave.FirstApproval = applications.FirstApproval;
leave.SecondApproval = applications.SecondApproval;
leave.FinalApproval = applications.FinalApproval;
leave.LeaveStatusID = 1;
try
{
unitOfWork.LeaveApplicationsRepository.Insert(leave);
unitOfWork.Save();
}
catch (DbEntityValidationException ex)
{
foreach (var validationErrors in ex.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
return Json(new { success = false, responseText = validationError.PropertyName + " - " + validationError.ErrorMessage });
}
}
}
return Json(new { responseText = "Save Successfully", success = true }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { responseText = "Error sending request", success = false }, JsonRequestBehavior.AllowGet);
}
}
尝试使用
$('#StartTime').val()和$('#EndTime').val()拾取时间选择器值。根据两个输入的ID,您在那里看到了什么值?TimeSpan
model binder可能无法识别这些值。它将显示上午8:00@tetsuyayamamoto。要绑定,这些值需要8:00
(上午8.00)和20:00
(下午8.00)(否则,您将需要一个自定义模型活页夹如何在TimeSpan中识别此数据??执行提交时删除AM/PM组件或使用@StephenMuecke所说的自定义模型活页夹,因为tt
(AM/PM指示器)格式仅对DateTime
实例有效。