Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引导日期选择器并禁用日期的C#/JSON数组,_Javascript_Jquery_Json - Fatal编程技术网

Javascript 引导日期选择器并禁用日期的C#/JSON数组,

Javascript 引导日期选择器并禁用日期的C#/JSON数组,,javascript,jquery,json,Javascript,Jquery,Json,我有一个日期列表,我想在我的。我无法让datesDisabled函数处理从JSON返回的日期数组。它确实适用于硬编码的日期数组 我是否需要对JSON返回的日期进行格式化以使其正常工作 查询: var DatesBooked= JsonConvert.SerializeObject(db.Calendar.Where(x => x.CalLocation != "OFF")).Select(x => x.CalDate).Distinct().ToList()); 我认为: @Ht

我有一个日期列表,我想在我的。我无法让datesDisabled函数处理从JSON返回的日期数组。它确实适用于硬编码的日期数组

我是否需要对JSON返回的日期进行格式化以使其正常工作

查询:

var DatesBooked= JsonConvert.SerializeObject(db.Calendar.Where(x =>  x.CalLocation != "OFF")).Select(x => x.CalDate).Distinct().ToList());
我认为:

@Html.TextBox("AddedDates", null, new { @class = "form-control small", @Value = ViewBag.SelDate, autocomplete = "off" })

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script src="~/Scripts/jquery.timepicker.js"></script>
    <script src="~/Scripts/bootstrap-datepicker.min.js"></script>
    <script>
    var unavailableDates= @Html.Raw(Json.Encode(Model.DatesBooked));

     $input = $("#AddedDates");
                    $input.datepicker({
                        multidate: true,
                        multidateSeparator: ',',
                        datesDisabled: unavailableDates, 
                    });
    </script>
如果我硬编码这个不可用的日期,一切正常

var unavailableDates = ["05/25/2016", "05/26/2016"]
我需要如何设置日期格式才能使其正常工作


蒂亚

经过多次尝试和更多研究,我通过以下方法解决了这个问题:

我用C#重新格式化了日期:

然后在视图中,我去掉了JSON返回的“\”字符并创建了一个数组:

var unavailableDates = @Html.Raw(Json.Encode(Model.DatesBooked));
        var formatDates = unavailableDates.replace(/\\/g, "");
        var trimDate = formatDates.slice(1, -1);  // to remove " at beginning and end
        var finalDates = JSON.parse("[" + trimDate + "]");
        $input = $("#AddedDates");
        $input.datepicker({
            multidate: true,
            multidateSeparator: ',',
            datesDisabled: finalDates,
            todayHighlight: true
    });    

经过多次尝试和更多研究,我通过以下方法解决了这个问题:

我用C#重新格式化了日期:

然后在视图中,我去掉了JSON返回的“\”字符并创建了一个数组:

var unavailableDates = @Html.Raw(Json.Encode(Model.DatesBooked));
        var formatDates = unavailableDates.replace(/\\/g, "");
        var trimDate = formatDates.slice(1, -1);  // to remove " at beginning and end
        var finalDates = JSON.parse("[" + trimDate + "]");
        $input = $("#AddedDates");
        $input.datepicker({
            multidate: true,
            multidateSeparator: ',',
            datesDisabled: finalDates,
            todayHighlight: true
    });    
var unavailableDates = @Html.Raw(Json.Encode(Model.DatesBooked));
        var formatDates = unavailableDates.replace(/\\/g, "");
        var trimDate = formatDates.slice(1, -1);  // to remove " at beginning and end
        var finalDates = JSON.parse("[" + trimDate + "]");
        $input = $("#AddedDates");
        $input.datepicker({
            multidate: true,
            multidateSeparator: ',',
            datesDisabled: finalDates,
            todayHighlight: true
    });