2011-08-30 55 views
1

我打電話與服務器:如何格式化一個jQuery的getJSON

var url = '@Url.Action("GetWhoBowls", "Home")'; 
$.getJSON(url, { "theDate": "calEvent.start" }, function (data) { 
        alert(data.name); 
       }); 

我已經試過引述「theDate」,甚至calEvent.start如上的所有排列....在所有情況下服務器抱怨(來自螢火蟲):

參數字典包含參數非空類型的「theDate」「System.Double」的方法的空條目「System.Web.Mvc.ActionResult GetWhoBowls (Double)'在'MatchClubMVC.Controllers.HomeController'中。

螢火蟲顯示呼叫的參數 theDate calEvent.start

這裏是我的控制器方法簽名

公衆的ActionResult GetWhoBowls(雙theDate)

有人能如此怎樣才能讓我走上正確的道路?!

+0

calEvent.start傳遞了什麼值? (我不熟悉fullcalendar) –

+0

Major Byte,calEvent.start是點擊事件的開始日期和時間。 – Pablo

回答

0

嘗試

public ActionResult GetWhoBowls(double? theDate) 

也是錯誤引起的,因爲你是{ "theDate": "calEvent.start" }

編輯發送一個空值

不知道這是否會解決問題或沒有,但試試這個

var url = '@Url.Action("GetWhoBowls", "Home")'; 
$.getJSON(url, { theDate: "calEvent.start" }, function (data) { 
        alert(data.name); 
       }); 

和修改這樣

public ActionResult GetWhoBowls(double theDate) 
{ 
    return(data,JsonRequestBehavior.AllowGet); 
} 

這個作用的結果。如果你希望你的控制器上的雙重不發送一個字符串(大約除去簡單的報價會給你從客戶

+0

爲什麼當我看到calEvent.start是客戶端上的有效日期時,控制器接收到空值?現在讓這個類型成爲一個可爲空的double,允許參數進來。我的問題是如何在JSON調用中傳遞calEvent.start作爲參數。顯然我在做什麼是不正確 – Pablo

+0

@保羅股票你問的是爲什麼接收錯誤':)'無論如何我會更新問題的時刻 – Rafay

+0

我希望它不是類型不匹配的情況下,如果你通過'DateTime '從客戶端,在服務器上,你必須做'DateTime theDate' – Rafay

2

發送空同errorif calEvent.start否則你發送這個字符串來這顯然不能被轉換爲double服務器):

$.getJSON(url, { theDate: calEvent.start }, function (data) { 
    alert(data.name); 
}); 

另外,還要確保calEvent.start是一個有效的雙重價值。