2017-08-04 31 views
1

我使用引导datetimepicker与我的ASP.net MVC5应用程序。 我试图获取从DB中的禁用日期,创建禁用日期数组,然后通过在JavaScript该数组: -无法将字符串数组分配给引导DateTimePicker disabledDates

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得到禁止。 任何人都可以请指导我如何将此数组值赋予禁用日期? 在此先感谢。

+1

'var disabledDatesAr = @ Html.Raw(Json.Encode(Model.disabledDates));' –

+0

谢谢@StephenMuecke !!有用。 –

回答

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剃须刀会尝试编码字符。

以下是一些有用的文档:Json.EncodeHtml.Raw

+1

感谢您的详细解释@Ashley Medway –

相关问题