【发布时间】:2010-05-26 19:59:59
【问题描述】:
我正在将 jquery fullcalendar 集成到我的应用程序中。 这是我正在使用的代码:
在 index.aspx 中:
<script type="text/javascript">
$(document).ready(function() {
$('#calendar').fullCalendar({
events: "/Scheduler/CalendarData"
});
});
</script>
<div id="calendar">
</div>
这是 Scheduler/CalendarData 的代码:
public ActionResult CalendarData()
{
IList<CalendarDTO> tasksList = new List<CalendarDTO>();
tasksList.Add(new CalendarDTO
{
id = 1,
title = "Google search",
start = ToUnixTimespan(DateTime.Now),
end = ToUnixTimespan(DateTime.Now.AddHours(4)),
url = "www.google.com"
});
tasksList.Add(new CalendarDTO
{
id = 1,
title = "Bing search",
start = ToUnixTimespan(DateTime.Now.AddDays(1)),
end = ToUnixTimespan(DateTime.Now.AddDays(1).AddHours(4)),
url = "www.bing.com"
});
return Json(tasksList,JsonRequestBehavior.AllowGet);
}
private long ToUnixTimespan(DateTime date)
{
TimeSpan tspan = date.ToUniversalTime().Subtract(
new DateTime(1970, 1, 1, 0, 0, 0));
return (long)Math.Truncate(tspan.TotalSeconds);
}
public ActionResult Index()
{
return View("Index");
}
我在 site.master 的 head 标签内也有以下代码:
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
<link href="<%= Url.Content("~/Content/jquery-ui-1.7.2.custom.css") %>" rel="stylesheet" type="text/css" />
<link href="~Perspectiva/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="~Perspectiva/Content/fullcalendar.css" rel="stylesheet" type="text/css" />
<script src="~Perspectiva/Scripts/jquery-1.4.2.js" type="text/javascript"></script>
<script src="~Perspectiva/Scripts/fullcalendar.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
我所做的一切都是从http://szahariev.blogspot.com/2009/08/jquery-fullcalendar-and-aspnet-mvc.html复制而来的
导航到 /scheduler/calendardata 时,我会收到保存 json 数据的提示,这些数据的内容正是我在 CalendarData 函数中创建的内容。
我需要做什么才能正确呈现页面?
提前致谢,
伊兰
更新: 在 Rune 和 Franci 的 cmets 之后,我添加了一个名为 CalendarData.aspx 的视图,它与 index.aspx 相同。结果:
- 导航到 /scheduler/calendardata 仍然给我保存文件对话框。
- 导航到 /scheduler/index 我得到 Visual中的以下运行时错误 Studio:Microsoft JScript 运行时 错误:预期对象。 VS 突出了 $(document).ready(function()...) 脚本标签中的代码。
【问题讨论】:
-
如果您没有更改任何其他内容,添加 CalendarData.aspx 视图不会更改任何内容,因为没有任何操作返回该视图。您在导航到 /scheduler/index 时看到的可能是正确的页面,但其中包含 javascript 错误。看来您的 ASP.NET MVC 内容(视图和操作)现在是正确的,但是 javascript 存在问题。尝试使用 FireFox 或 Chrome 访问 /scheduler/index 并进一步调查 js 错误,可能使用 FireFox 的 FireBug-plugin
-
你解决过这个问题吗?我现在遇到了这个问题,似乎无法克服它。
-
我已经有一段时间没有接触过这段代码了,但是如果我没记错的话,解决方案是将所有指向 css 和 js 文件的链接放在 aspx 文件而不是母版页中,并使用 Url .Content() 对它们进行编码。希望这会有所帮助!
标签: jquery asp.net asp.net-mvc json fullcalendar