ASP.NETMVC:jQueryUIDatePicker从AJAX加载页面上的模型设置minDate和maxDate

ASP.NETMVC:jQueryUIDatePicker从AJAX加载页面上的模型设置minDate和maxDate,jquery,asp.net-mvc,ajax,jquery-ui,datepicker,Jquery,Asp.net Mvc,Ajax,Jquery Ui,Datepicker,我有一个弹出的对话框表单,它的内容是使用jQuery加载函数加载的。在加载ajax的页面上有一个jQueryUIDatePicker,在我传递给视图的模型中,我有MinDate和MaxDate属性,用于设置datepicker的最小和最大日期。在非ajax页面上,我通常执行以下操作: <script type="text/javascript"> $(function () { var model = @(Model.ToJson()); $('.date

我有一个弹出的对话框表单,它的内容是使用jQuery加载函数加载的。在加载ajax的页面上有一个jQueryUIDatePicker,在我传递给视图的模型中,我有MinDate和MaxDate属性,用于设置datepicker的最小和最大日期。在非ajax页面上,我通常执行以下操作:

<script type="text/javascript">
$(function () {
     var model = @(Model.ToJson());

        $('.date').datepicker('option', 'minDate', new Date(parseInt(model.MinDate.substr(6))));
        $('.date').datepicker('option', 'maxDate', new Date(parseInt(model.MaxDate.substr(6))));

});
</script>

$(函数(){
var model=@(model.ToJson());
$('.date').datepicker('option','minDate',new date(parseInt(model.minDate.substr(6));
$('.date').datepicker('option','maxDate',new date(parseInt(model.maxDate.substr(6)));
});
问题是,如果我在从jQuery加载函数加载的视图中包含任何javascript,它将被剥离而不执行。因此,如果我在对话框表单中包含上面的代码来指定日期选择器的最小和最大日期,则该代码不起作用


如何为jQuery UI日期选择器指定最小和最大日期,其中日期选择器通过ajax加载,并且最小和最大日期来自模型?

您可以将这两个模型属性序列化为DOM中某个位置的HTML5 data-*属性。例如,作为datepicker本身的一部分,它将非常棒:

<input type="text" class="date" name="myDate" data-min="@Model.MinDate" data-max="@Model.MaxDate" />
然后在DOM ready中调用此函数:

$(initPicker);

以及在AJAX成功回调中重新附加它们。

您可以将这两个模型属性序列化为DOM中的HTML5 data-*属性。例如,作为datepicker本身的一部分,它将非常棒:

<input type="text" class="date" name="myDate" data-min="@Model.MinDate" data-max="@Model.MaxDate" />
var minshowdate = new Date(@(DateTime.Now.Date.Year), 
                           @(DateTime.Now.Date.Month), 
                           @(DateTime.Now.Date.Day));
$('#ShowDate').datepicker({ minDate : minshowdate });
然后在DOM ready中调用此函数:

$(initPicker);

以及在AJAX成功回调中重新连接它们。

我已经想到了这一点,如果没有其他方法,这将是我的解决方案。听起来这可能是最好的办法。我已经想到了这一点,如果没有其他办法的话,这将是我的解决办法。听起来这可能是最好的办法。
var minshowdate = new Date(@(DateTime.Now.Date.Year), 
                           @(DateTime.Now.Date.Month), 
                           @(DateTime.Now.Date.Day));
$('#ShowDate').datepicker({ minDate : minshowdate });