Jクエリコード
$('#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>
UIは
問題 :上記のようにカレンダーを読み込むと、カレンダーが読み込まれません。つまり、部分的なページがカレンダーなしで読み込まれます (他のものは正しく読み込まれます)。
しかし、ajax ロード メソッドを使用せずにページ全体をロードすると、カレンダー コントロールが表示されます。
だから私の質問は、カレンダーコントロールでAjaxロードを使用する方法です(私の気持ちは、カレンダープラグインがajax呼び出しでロードされないということです.それで、ajaxロードメソッドでそれをロードするにはどうすればよいですか?)