2017-08-04 14 views
1

私はASP.net MVC5アプリケーションでブートストラップdatetimepickerを使用しています。 私は、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"]; 

スティーブン・マイケがコメントで述べたように、これを行うにはうまくいく方法があります。

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

Html.Rawがなければ、剃刀は文字をエンコードしようとします。

有用なドキュメントは次のとおりです。Json.EncodeHtml.Rawです。

+1

詳細についてはおねがいします@Ashley Medway –

関連する問題