MVC3 JQuery getJSON返回错误s未定义

时间:2012-01-30 23:09:25

标签: asp.net-mvc-3 jquery

我有一个函数调用MVC3中的控制器方法。

$.getJSON('@Url.Action("LoadCitiesByProvince", "Property")', { id: 1}, function (msg) {
    alert("Data Saved: " + msg);
});

最终呈现的Javascript:

$.getJSON('/MySite/Property/LoadCitiesByProvince', { id: 1 }, function (msg) {
alert("Data Saved: " + msg);
}); 

Firebug报告以下错误:

s is undefined
[Break On This Error]   

callbackContext = s.context || s,

当我调试我的控制器时,方法永远不会被击中。我已经三次检查控制器方法,甚至通过我的浏览器中的url手动调用它(在whitch情况下它按预期工作)。这是我的控制器方法:

[AcceptVerbs(HttpVerbs.Get)]
public JsonResult LoadCitiesByProvince(string id)
{
    var modelList = this.GetCities(Convert.ToInt32(id));

    var modelData = modelList.Select(m => new SelectListItem()
    {
        Text = m.Description,
        Value = m.Id.ToString(),

    });

    return Json(modelData, JsonRequestBehavior.AllowGet);
}

此时我想看到的是我的控制器方法被击中并且数据回来了。

1 个答案:

答案 0 :(得分:1)

问题在于MVC3附带的jquery vsdoc javascript文件。它会导致此错误。只需更改javascript包含行:

<script src="@Url.Content("~/Scripts/jquery-1.5.1-vsdoc.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>

以下是有关此问题的问题的链接:

Updating vsDoc to 1.5 breaks all javascript

相关问题