2017-08-04 34 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 –

相關問題