确实很困惑,为什么在将数据保存到控制器时我的视图不将数据绑定到模型中。我使用Jquery Datetime Picker创建了这个UI。在提交“提交”按钮消息后,尝试调试[[“ Nullable对象必须具有值”,并且由于这些数据从不绑定(无值/空)到模型中,所以此错误显示在我的日期开始和日期结束视图中。
基于该UI,我想使用EF将这些数据保存到sql服务器数据库中。我的模型是日期时间类型。
我的模特:
public class OvertimeRequestModel
{
public int OvertimeId { get; set; }
public string OvertimeCode { get; set; }
public DateTime? DateStart { get; set; } //datetime format
public DateTime? DateEnd { get; set; } //datetime format
public string Notes { get; set; }
}
我在视图中使用了texboxfor:
<div class="input-group col-xs-10 col-sm-5"> @Html.TextBoxFor(m => m.DateStart, @"{0:MM/dd/yyyy HH:mm:ss}", new { @class = "form-control", @id = "date-timepicker1", @placeholder = "select date start", required = "required", @autocomplete = "off" }) <span class="input-group-addon"> <i class="fa fa-clock-o bigger-110"></i> </span> </div> <div class="input-group col-xs-10 col-sm-5"> @Html.TextBoxFor(m => m.DateEnd, @"{0:MM/dd/yyyy HH:mm:ss}", new { @class = "form-control", @id = "date-timepicker2", @placeholder = "select date End", required = "required", @autocomplete = "off" }) <span class="input-group-addon"> <i class="fa fa-clock-o bigger-110"></i> </span> </div>
我的JavaScript:
<script type="text/javascript"> //$(document).ready(function(){ jQuery(function ($) { if (!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({ format: 'MM/DD/YYYY HH:mm:ss',//use this option to display seconds icons: { time: 'fa fa-clock-o', date: 'fa fa-calendar', up: 'fa fa-chevron-up', down: 'fa fa-chevron-down', previous: 'fa fa-chevron-left', next: 'fa fa-chevron-right', today: 'fa fa-arrows ', clear: 'fa fa-trash', close: 'fa fa-times' } }).next().on(ace.click_event, function () { $(this).prev().focus(); }); if (!ace.vars['old_ie']) $('#date-timepicker2').datetimepicker({ format: 'MM/DD/YYYY HH:mm:ss', icons: { time: 'fa fa-clock-o', date: 'fa fa-calendar', up: 'fa fa-chevron-up', down: 'fa fa-chevron-down', previous: 'fa fa-chevron-left', next: 'fa fa-chevron-right', today: 'fa fa-arrows ', clear: 'fa fa-trash', close: 'fa fa-times' } }).next().on(ace.click_event, function () { $(this).prev().focus(); }); }); </script>
我的控制器:
OvertimeRequest over = new OvertimeRequest(); over.OvertimeCode = model.OvertimeCode; over.DateStart = model.DateStart; //always get null value over.DateEnd = model.DateEnd; //always get null value over.Notes = model.Notes; db.OvertimeRequest.Add(over); db.SaveChanges();
需要建议,谢谢。
@Html.TextBoxFor(model => model.StartDate, "{0:dd.MM.yyyy}", new { @class = "date-picker fullwidth", data_date_format = "dd.mm.yyyy" })
Js
$(".date-picker").datepicker({ autoclose: true, todayHighlight: true });
型号
public DateTime StartDate { get; set; }