1

jQuery代码

  $('#afterServiceSelect').die('click').live('click', function () {

  var petKeys = $('#pets input:checked').map(function () { return $(this).val(); }).get().join('+');

   $('#available-dates').load('/PetBooking/GetAvailableDatesForServce/', { 'providerKey': '<%:Model.Provider.Key%>', 'ownerKey': '<%:Model.Owner.Key%>', 'serviceId': $('#ddlService').val(), 'petKeys': petKeys, 'numberOfDays': 90 }, function () {

            });

         return false;
  });

主页 HTML

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
   <div id="available-dates">
    </div>
</asp:Content>

控制器

[HttpPost]
        public ActionResult GetAvailableDatesForServce(string providerKey, string ownerKey, string serviceId, string petKeys, string numberOfDays)
        {
            var bookingFacadeService = new BookingFacadeService();

            var model = new AppointmentViewModel
                {
                    AvailableDates = bookingFacadeService.GetAvailableDates(providerKey, ownerKey, serviceId, petKeys.Split('+'), Convert.ToInt32(numberOfDays)).ToList()
                };

            return PartialView("Dates", model);
        }

日期部分视图

    var value = dates.Any() ? dates.Select(d => d.Date.ToString("yyyy-MM-dd")).Join(",") : "";
     var monthCount = ((DateTime.Today.AddDays(90).Month - DateTime.Today.Month + 1) + 12) % 12; %>

<div id="dates" class="inline-multi-calendar" data-multi="true" data-months="<%: monthCount %>"
    data-min="<%: min %>" data-max="<%: max %>" data-disallowed="<%= string.Join(",", Model.UnavailableDates.Select(d => d.ToString("yyyy-MM-dd")).ToArray()) %>"
    data-value="<%: value %>">
</div>

界面应该是

在此处输入图像描述

问题:当我像上面那样加载日历时,它不会加载日历。换句话说,没有日历的部分页面加载(其他内容正确加载)。

但是,当我在没有 ajax 加载方法的情况下加载整页时,它会显示带有日历控件。

所以我的问题是如何使用带有日历控件的 Ajax 加载(我的感觉是日历插件不使用 ajax 调用加载。那么如何使用 ajax 加载方法加载它)?

4

0 回答 0