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 加载方法加载它)?