J'utilise le plugin de calendrier complet Jquery, et je veux être en mesure de cliquer sur un événement et les détails de l'événement à remplir via AJAX dans une div avec l'ID de #details.jQuery.Load() ne déclenche pas Request.IsAjaxRequest dans ASP.NET MVC2
Voici l'action de mon contrôleur que j'essaie de charger. Lors du débogage, l'action ne considère pas que la requête entrante est AJAX et renvoie la vue complète à la place du partiel. Est-ce important si la vue complète est appelée la même que la vue partielle? C'est à dire; 'Details.aspx' & 'Détails.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);
}
}
Voici le code jquery que j'utilise. Ai-je manqué de ne pas utiliser .load() correctement dans la fonction eventClick? Le développeur du plugin de calendrier a confirmé que eventClick n'a rien à voir avec AJAX, donc la faute doit résider dans mon code.
$(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'
}
}
});
}
});
});
Alors que j'utilise la fonction Jquery.Load() de manière incorrecte, ou est-il quelque chose de mal avec mon contrôleur?
Plus de mises à jour: J'ai finalement attrapé le problème. La XMLHttpRequest est en cours d'envoi, mais je rencontre une erreur de serveur interne de 500, pas encore résolue car je n'arrive pas à comprendre ce qui cause l'erreur.
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
MISE À JOUR: J'ai finalement compris quel était le problème. Je ne passait pas dans le modèle de la partie de sorte que la ligne
return PartialView("Details");
aurait dû être
return PartialView("Details", pol_Event);
ce générait 500 erreur de service interne.
comment Résume IsAjaxRequest() fonctionne: http://bit.ly/bXq32v – BritishDeveloper