2011-08-05 58 views
2

我想用json事件更新來實現jQuery完整的日曆。我不知道爲什麼oit不工作。她是我的layout.cstml頭ASP.NET MVC 3 jQuery fullCalendar

<!DOCTYPE html> 
<html> 
<head> 
<title>@ViewBag.Title</title> 
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
<script src="../../Scripts/fullcalendar.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery-ui-1.7.2.custom.min.js" type="text/javascript">  </script> 
<script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<link href="../../Content/fullcalendar.css" rel="stylesheet" type="text/css" /> 
<link href="../../Content/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" /> 



</head> 

這裏是我的index.cshtml

@{ 
ViewBag.Title = "Home Page"; 
} 


<h2>@ViewBag.Message</h2> 
<p> 
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC  Website">http://asp.net/mvc</a>. 
</p> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
    $('#calendar').fullCalendar({ 
      events: "/Home/CalendarData" 
     }); 
    }); 
    </script> 

    <div id="calendar"> 
    </div> 

我的控制器

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using MvcApplication4.Models; 

namespace MvcApplication4.Controllers 
    { 
    public class HomeController : Controller 
    { 
    public ActionResult Index() 
    { 
     ViewBag.Message = "Welcome to ASP.NET MVC!"; 

     return View(); 
    } 

    public ActionResult About() 
    { 
     return View(); 
    } 


    [HandleError] 

     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); 
     } 

     private long ToUnixTimespan(DateTime date) 
     { 
      TimeSpan tspan = date.ToUniversalTime().Subtract(
     new DateTime(1970, 1, 1, 0, 0, 0)); 

       return (long)Math.Truncate(tspan.TotalSeconds); 
     } 
     } 
    } 

我越來越沒有在我的視野。有什麼建議麼?提前致謝!

+0

這是一個猜測,但你嘗試過改變你的腳本的訂單包括(包括jQuery的第一個,然後UI,然後日曆)... – forsvarir

回答

2

的Javascript包括爲了做事情在這裏......

你應該把jQuery的LIB jQueryUI的LIB上面,然後fullCalendar庫。

編輯:另外,你應該使用Url.Content()像第一個CSS標籤。這有助於在頁面加載時解析實際的服務器路徑。你不想使用相對路徑。

所以你的標籤應該像...

<!DOCTYPE html> 
<html> 
<head> 
<title>@ViewBag.Title</title> 
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
<script src="@Url.Content("~/Scripts/jquery-1.3.2.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.7.2.custom.min.js")" type="text/javascript"></script>  
<script src="@Url.Content("~/Scripts/fullcalendar.js")" type="text/javascript"></script> 
<link href="@Url.Content("~/Content/fullcalendar.css")" rel="stylesheet" type="text/css" /> 
<link href="@Url.Content("~/Content/jquery-ui-1.7.2.custom.css")" rel="stylesheet" type="text/css" /> 

編輯2: 其實,我想我看到你沒有得到在你看來什麼的真正原因。

在你的layout.cshtml中,你需要添加一個body標籤。洙......

<!DOCTYPE html> 
<html> 
<head> 
<title>@ViewBag.Title</title> 
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
<script src="../../Scripts/fullcalendar.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery-ui-1.7.2.custom.min.js" type="text/javascript">  </script> 
<script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<link href="../../Content/fullcalendar.css" rel="stylesheet" type="text/css" /> 
<link href="../../Content/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" /> 



</head> 
<body> 
    <div id="page"> 
     @RenderBody() 
    </div> 
</body> 

所以剃刀引擎知道往哪裏放未在一節中定義的視圖內容您需要的RenderBody()方法。佈局視圖中不能有多個RenderBody()方法。

+0

感謝大衛,我會在一小會兒,並標記爲答案試試這個如果我能得到它的工作。謝謝! – Dan

+0

現在工作,我會在將來觀看! – Dan

+0

我有reanderbody在,發佈佈局頁面的其餘部分只是沒有意義。謝謝 – Dan