Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery getJSON回调未启动_Jquery_Asp.net Mvc_Json - Fatal编程技术网

Jquery getJSON回调未启动

Jquery getJSON回调未启动,jquery,asp.net-mvc,json,Jquery,Asp.net Mvc,Json,我通过一个测试项目学习asp.NETMVC,包括亚音速和jQuery 我遇到的问题是,每次我想要返回的不仅仅是一个简单的字符串,比如Json对象,我都会遇到阻碍,因为回调似乎不会启动,或者返回失败 获取数据库中作业列表的方法: [AcceptVerbs(HttpVerbs.Get)] public JsonResult GetAllJobs() { var db = new JamesTestDB(); var jobs = from jo

我通过一个测试项目学习asp.NETMVC,包括亚音速和jQuery

我遇到的问题是,每次我想要返回的不仅仅是一个简单的字符串,比如Json对象,我都会遇到阻碍,因为回调似乎不会启动,或者返回失败

获取数据库中作业列表的方法:

    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult GetAllJobs()
    {
        var db = new JamesTestDB();
        var jobs = from job in db.Jobs
                   select job;

        return Json(jobs.ToList());
    }
我的JavaScript称之为:

    function updateJobList() {
        var url = '<%= Url.Action("GetAllJobs", "Home") %>';

        $.getJSON(url, null, function(data, status) { alert("Success!"); });
    }
函数updatejobst(){
var url='';
$.getJSON(url,null,函数(数据,状态){alert(“Success!”);});
}
我已经使用内联和外部函数定义讨论了get、post和getJSON的成功和失败。似乎什么都不起作用,但代码肯定是在进行Ajax调用,只是没有启动回调。

jQuery有一个函数,如果您想看到错误,您必须绑定它:

$("#msg").ajaxError(function(event, request, settings){
   $(this).append("<li>Error requesting page " + settings.url + "</li>");
 });
$(“#msg”).ajaxError(函数(事件、请求、设置){
$(this).append(“
  • 请求页面时出错”+settings.url+”
  • ”; });
    您是否尝试过:

    $.getJSON(url,函数(数据,状态){alert(“Success!”);})

    此外,通过执行以下操作检查URL是否正确解析:

    警报(url)

    在打电话之前检查它是否正确


    然后检查Firefox中Firebug控制台窗口上的响应。

    问题在于我返回的内容。将匿名类型推入Json()似乎会导致它在某种程度上陷入混乱。通过定义一个简单的类并将值推送到它的一个新实例中,我使它正确返回。

    下面是解决方案

    事实证明,一年多来我一直在以同样的方式行事:

    public JsonResult SaveData(string userID, string content)
    {
        var result = new { Message = "Success!!" };
    
        return Json(result);
    }
    
    所以,我开始在我开始的一个新项目上用同样的方法来做。那么,区别是什么呢?第一个是MVC1.0,我的新版本是MVC2.0。那么有什么区别呢?您必须允许JSON GET请求:

    public JsonResult SaveData(string userID, string content)
    {
        var result = new { Message = "Success!!" };
    
        return Json(result, JsonRequestBehavior.AllowGet);
    }
    

    这是跨域getJSON(即JSONP)还是同一域?