如何格式化JQuery GetJSON

时间:2011-08-30 21:15:08

标签: asp.net-mvc-3 fullcalendar

我用以下方法调用服务器:

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

我已经尝试过引用'theDate'的所有排列,甚至是上面的calEvent.start ....在所有情况下,服务器都抱怨(来自Firebug):

  
    

参数字典在'MatchClubMVC.Controllers.HomeController'中为方法'System.Web.Mvc.ActionResult GetWhoBowls(Double)'包含非可空类型'System.Double'的参数'theDate'的空条目。< / p>   

Firebug将调用的参数显示为 theDate calEvent.start

这是我的控制器方法签名

public ActionResult GetWhoBowls(double theDate)

有人可以如此善良,让我走上正确的道路吗?!

2 个答案:

答案 0 :(得分:2)

如果你希望你的控制器上有一个double,就不要发送一个字符串(删除calEvent.start周围的简单引号,否则你将这个字符串文字发送到服务器,显然无法转换为double):

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

还要确保calEvent.start是有效的双倍值。

答案 1 :(得分: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);
}

如果您从客户端

发送null,这将给出相同的错误