MrB*_*liz 7 ajax asp.net-mvc jquery fullcalendar
我正在使用Jquery完整的日历插件,我希望能够点击一个事件,并通过AJAX将事件的详细信息填充到id为#details的div中.
这是我正在尝试加载的控制器操作.调试时,操作不会将传入请求视为AJAX并返回完整视图而不是部分视图.如果将完整视图调用与局部视图相同,这是否重要?即; '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);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的jquery代码.我错过了在eventClick函数中没有正确使用.load()吗?日历插件的开发人员已确认eventClick与AJAX无关,因此错误必须在我的代码中.
$(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'
}
}
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
所以我使用Jquery.Load()函数不正确,或者我的控制器有什么问题?
更多更新:我终于发现了问题.XMLHttpRequest正在发送,但我遇到500内部服务器错误,尚未解决,因为我无法弄清楚是什么导致错误.
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
Run Code Online (Sandbox Code Playgroud)
更新:我终于弄明白了问题所在.我没有在模型中传递给部分线条
return PartialView("Details");
Run Code Online (Sandbox Code Playgroud)
本来应该
return PartialView("Details", pol_Event);
Run Code Online (Sandbox Code Playgroud)
这产生了500内部服务错误.
当您发出Ajax请求时,您可能会将" X-Requested-With "HTTP标头设置为类似" XMLHttpRequest "的内容,例如.
Host www.google.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; (snip...)
Accept */*
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://www.google.com
Run Code Online (Sandbox Code Playgroud)
这个'X-Requested-With'标题是'IsAjaxRequest()'方法所寻找的.通常,jQuery的Ajax方法会自动发送此标头.我的猜测是,由于某种原因,jQuery Calendar插件没有发送此标头.
我会下载类似fiddler的东西,或安装Firebug for Firefox并在Ajax请求/日历控件被触发/初始化时检查原始HTTP请求/响应数据.查看是否包含X-Requested-With标头.
| 归档时间: |
|
| 查看次数: |
1831 次 |
| 最近记录: |