Używam wtyczki pełnego kalendarza Jquery i chcę móc kliknąć wydarzenie i szczegóły zdarzenia, które należy wypełnić za pośrednictwem AJAX do elementu div o identyfikatorze #details.jQuery.Load() nie wyzwalanie Request.IsAjaxRequest w ASP.NET MVC2
Oto moja akcja kontrolera, którą próbuję wczytać. Podczas debugowania akcja nie uwzględnia przychodzącego żądania jako AJAX i zwraca pełny widok zamiast częściowego. Czy ma znaczenie, czy pełny widok jest nazywany widokiem częściowym? To znaczy; "Details.aspx" & "Details.ascx"?
public ActionResult Details(int id)
{
Pol_Event pol_Event = eventRepo.GetEvent(id);
ViewData["EventTypes"] = et.GetEventType(id);
if (pol_Event == null)
return View("NotFound");
else
{
if(HttpContext.Request.IsAjaxRequest()){
return PartialView("Details");
}
else
return View(pol_Event);
}
}
Oto kod jquery, którego używam. Czy brakuje mi nie używania .load() poprawnie w funkcji eventClick? Developer wtyczki kalendarza potwierdził, że eventClick nie ma nic wspólnego z AJAX, więc błąd musi leżeć w moim kodzie.
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
events: "/Events/CalendarData",
allDayDefault: false,
selectable: true,
eventClick: function(event) {
$('details').load(event.url);
},
eventRender: function(event, element) {
element.qtip({
content: event.title + " @ " + event.venue,
position: {
corner: {
target: 'topLeft',
tooltip: 'bottomLeft'
}
}
});
}
});
});
Używam nieprawidłowo funkcji Jquery.Load() lub czy jest coś nie tak z moim kontrolerem?
Więcej aktualizacji: w końcu złapałem problem. Wysyłam XMLHttpRequest, ale napotykam błąd wewnętrzny wewnętrzny 500, nie rozwiązany, ponieważ nie mogę dowiedzieć się, co jest przyczyną błędu.
Host: localhost:4296
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722
Firefox/3.6.8
Accept: text/html, */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://localhost:4296/Events/EventCalendar
Cookie: .ASPXAUTH=56C5F4FD536564FF684F3F00E9FB51A5F2F1B22D566C517923D71FEAF599D266531CAC52BF49D2700E048DD420A4575456855303CC2DCB5875D4E1AD8883821EA62E5169969503776C78EB3685DAA48C
AKTUALIZACJA: W końcu zorientowałem się, na czym polegał problem. Nie mijał w modelu częściowego więc linii
return PartialView("Details");
powinny były
return PartialView("Details", pol_Event);
ten został generowania błędu serwisowego wewnętrzny 500.
Podsumowuje jak IsAjaxRequest() działa: http://bit.ly/bXq32v – BritishDeveloper