Bootstrap 仅日期选择器年份不具有约束力

Bootstrap Datepicker Year Only Not Binding

在我的 MVC 项目中,我的模型中有一个可为空的 Datetime 属性,名为 ReplacementDate

在我看来,我有一个 Bootstrap 日期选择器(2.0 版),它使用以下代码初始化:

$('.input-group.decade').datepicker({
            format: "yyyy",
            viewMode: "years",
            minViewMode: "years",
            keyboardNavigation: false,
            forceParse: false,
            autoclose: true,
            showOnFocus: false
});

日期选择器在屏幕上正确呈现,我只能 select 日历中的年份值。但是当我 post 表单数据时 ReplacementDate 属性 没有值。我已经尝试将格式设置为“yyyy”和 "yyyy" 甚至 "YYYY" 但似乎没有任何东西允许绑定发生。

奇怪的是,我在同一页面上有另一个日期选择器,允许用户 select 一个月和一年,并且它在提交到不同的可为空的日期 属性 时正确绑定。代码如下:

$('.input-group.month').datepicker({
            format: "mm/yyyy",
            viewMode: "months",
            minViewMode: "months",
            keyboardNavigation: false,
            forceParse: false,
            autoclose: true,
            showOnFocus: false
});

我做错了什么来阻止 ReplacementDate 值正确绑定?我是否必须将 ReplacementDate 设置为可为空的 int 或其他内容?

我建议这样做:

$('#date1').datepicker({
  changeMonth: true,
  changeYear: true,
  showButtonPanel: true,
  dateFormat: 'yy',
  onClose: function(dateText, inst) {
    var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
    $(this).datepicker('setDate', new Date(year));
    console.log($("#ui-datepicker-div .ui-datepicker-year :selected").val())
  }
});
#ui-datepicker-div {
  font-size: 12px;
}

.ui-datepicker-calendar {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/themes/vader/jquery-ui.min.css" />
<input type="text" id="date1" name="date1" />

我将 ReplacementDate DateTime 属性 更改为 int 并绑定了。我不知道为什么当它是 DateTime 时它不会绑定,因为 MM/yyyy 版本绑定得很好 DateTime.