无法将字符串数组分配给 Bootstrap DateTimePicker disabledDates
Unable to assign String Array to Bootstrap DateTimePicker disabledDates
我在 ASP.net MVC5 应用程序中使用 bootstrap 日期时间选择器。
我正在尝试从数据库中获取禁用日期,创建一个禁用日期数组,然后将该数组传递给 javascript:-
C#
public String[] disabledDates { get; set; } // This model property gets set from database.
例如disabledDates = ["2017-08-29","2017-11-22"];
<script type="text/javascript">
$(function () {
var disabledDatesAr = '@Model.disabledDates';
$('#scheduleDate').datetimepicker({
useCurrent: false,
minDate: new Date(),
format: 'DD-MM-YYYY hh:mm A',
showTodayButton: true,
sideBySide: true,
showClose: true,
showClear: true,
toolbarPlacement: 'top',
disabledDates: disabledDatesAr
});
});
</script>
但是上面的代码不起作用并且 DateTimePicker 弹出窗口被禁用。
谁能指导我如何将此数组值分配给禁用日期?
提前致谢。
当你有这个部分时:
var disabledDatesAr = '@Model.disabledDates';
您实际上只是在调用对象的 ToString 方法。数组的 ToString 方法输出如下 System.String[]
。所以你真的是在用剃须刀做这个:
var disabledDatesAr = 'System.String[]';
您要做的是创建一个 JSON 数组,这将输出您期望的语法。
disabledDates = ["2017-08-29","2017-11-22"];
正如 Stephen Muecke 在评论中提到的那样,一种巧妙的方法可以做到这一点。
var disabledDatesAr = @Html.Raw(Json.Encode(Model.disabledDates));
没有 Html.Raw
剃刀会尝试对字符进行编码。
这里有一些有用的文档:Json.Encode
and Html.Raw
。
我在 ASP.net MVC5 应用程序中使用 bootstrap 日期时间选择器。 我正在尝试从数据库中获取禁用日期,创建一个禁用日期数组,然后将该数组传递给 javascript:-
C#
public String[] disabledDates { get; set; } // This model property gets set from database.
例如disabledDates = ["2017-08-29","2017-11-22"];
<script type="text/javascript">
$(function () {
var disabledDatesAr = '@Model.disabledDates';
$('#scheduleDate').datetimepicker({
useCurrent: false,
minDate: new Date(),
format: 'DD-MM-YYYY hh:mm A',
showTodayButton: true,
sideBySide: true,
showClose: true,
showClear: true,
toolbarPlacement: 'top',
disabledDates: disabledDatesAr
});
});
</script>
但是上面的代码不起作用并且 DateTimePicker 弹出窗口被禁用。 谁能指导我如何将此数组值分配给禁用日期? 提前致谢。
当你有这个部分时:
var disabledDatesAr = '@Model.disabledDates';
您实际上只是在调用对象的 ToString 方法。数组的 ToString 方法输出如下 System.String[]
。所以你真的是在用剃须刀做这个:
var disabledDatesAr = 'System.String[]';
您要做的是创建一个 JSON 数组,这将输出您期望的语法。
disabledDates = ["2017-08-29","2017-11-22"];
正如 Stephen Muecke 在评论中提到的那样,一种巧妙的方法可以做到这一点。
var disabledDatesAr = @Html.Raw(Json.Encode(Model.disabledDates));
没有 Html.Raw
剃刀会尝试对字符进行编码。
这里有一些有用的文档:Json.Encode
and Html.Raw
。