我在我的ASP.net MVC5应用程序中使用bootstrap datetimepicker。 我正在尝试从DB中获取禁用日期,创建一个禁用日期数组,然后在javascript中传递该数组: -
C#
public String[] disabledDates { get; set; } // This model property gets set from database.
e.g。 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弹出窗口被禁用。 任何人都可以指导我如何将此数组值分配给禁用日期? 提前谢谢。
答案 0 :(得分:0)
当你有这个部分时:
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
razor会尝试编码字符。
以下是一些有用的文档:Json.Encode
和Html.Raw
。