Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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
C# 尝试使用jQuery ajax和MVC显示JSONResult时出现内部服务器错误#500_C#_Asp.net Mvc_Json_Jquery_Asp.net Ajax - Fatal编程技术网

C# 尝试使用jQuery ajax和MVC显示JSONResult时出现内部服务器错误#500

C# 尝试使用jQuery ajax和MVC显示JSONResult时出现内部服务器错误#500,c#,asp.net-mvc,json,jquery,asp.net-ajax,C#,Asp.net Mvc,Json,Jquery,Asp.net Ajax,控制器 public JsonResult TeamInfo(string teamName) { teamDA = new TeamDataAccess(); var teamInfo = teamDA.TeamInfo(teamName); System.Web.Script.Serialization.JavaScriptSerializer oSerializer =

控制器

public JsonResult TeamInfo(string teamName)
            {
                teamDA = new TeamDataAccess();
                var teamInfo = teamDA.TeamInfo(teamName);
               System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
             new System.Web.Script.Serialization.JavaScriptSerializer();
                string sJSON = oSerializer.Serialize(teamInfo);
                JsonResult jsonResult 
=new JsonResult(){ JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
                    jsonResult.Data = sJSON; // first i give this.
         jsonResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
                    return jsonResult;
                }
从jQuery调用控制器

$.ajax({
                url: 'Team/TeamInfo/' + teamName,
                success: function (data) {
                    $('#teamDetails').html(data);
                    alert('Load was performed.');
                    $("#dialog-modal").dialog("open");
                }
            });
在调试过程中,我可以看到它一直执行到controller
return jsonResult中的最后一行
警报(“已执行加载”)不可见。
你知道它没有进入成功部分的原因吗。服务器端没有错误。非常感谢您的帮助

编辑
当我在ajax调用中添加
错误时。它显示错误500(内部服务器错误)。如何查找此问题?

的默认请求类型为
GET
,但默认情况下,在
JsonResult
上不允许GET请求,因此您需要使用以下属性来允许它们:

JsonResult jsonResult = 
    new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet };
jsonResult.Data = sJSON;

return jsonResult;
或者,您可以使用
类型:“POST”发布ajax调用。


注意:仍然不清楚您将返回的JSON直接放入DOM中的目标是什么,行为
$('#teamDetails').html(数据)

的默认请求类型为
GET
,但默认情况下,在
JsonResult
上不允许GET请求,因此您需要使用以下属性来允许它们:

JsonResult jsonResult = 
    new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet };
jsonResult.Data = sJSON;

return jsonResult;
或者,您可以使用
类型:“POST”发布ajax调用。


注意:仍然不清楚您将返回的JSON直接放入DOM中的目标是什么,行为
$('#teamDetails').html(数据)

您不需要使用JavaScriptSerializer制作所有序列化内容

您的操作方法可能如下所示:

 public JsonResult TeamInfo(string teamName)
 {
      return Json(new TeamDataAccess()TeamInfo(teamName), JsonRequestBehavior.AllowGet); 
 }

您不需要使用JavaScriptSerializer制作所有序列化内容

您的操作方法可能如下所示:

 public JsonResult TeamInfo(string teamName)
 {
      return Json(new TeamDataAccess()TeamInfo(teamName), JsonRequestBehavior.AllowGet); 
 }

如果直接将结果作为HTML放入页面的DOM中,为什么要发回
JsonResult
?尝试注释掉
$('#teamDetails').html(数据)。。。。看看发生了什么,没什么。它只是在控制器中完成了功能,并没有进入成功状态。是否需要添加到我的代码中?从浏览器调用您的操作,而不是通过ajax调用。服务器将为您返回错误页面。或者在调试模式下运行。是的,我遇到了问题
此请求已被阻止,因为在GET请求中使用此请求时,可能会向第三方网站披露敏感信息
。请查看我的更新代码如果直接将结果作为HTML放入页面的DOM中,为什么要发回
JsonResult
?尝试注释掉
$('#teamDetails').html(数据)。。。。看看发生了什么,没什么。它只是在控制器中完成了功能,并没有进入成功状态。是否需要添加到我的代码中?从浏览器调用您的操作,而不是通过ajax调用。服务器将为您返回错误页面。或者在调试模式下运行。是的,我遇到了问题
此请求已被阻止,因为在GET请求中使用此请求时,可能会向第三方网站披露敏感信息
。请看我的更新代码,我试过了。但事实并非如此。让我再检查一下。在将其放入div之前,我需要创建一些HTML。这不起作用:(.但是向下一个可以工作。但是为什么它不工作?@VeeKeyBee
此请求已被阻止…
这是当您未设置
JsonRequestBehavior.AllowGet
时得到的错误消息。因此,您的问题一直是这样的,可能应用程序未重建或浏览器缓存结果…使用e> return Json(…
将执行与创建
JsonResult
和手动执行序列化基本相同的操作…我尝试了该方法。但仍然没有。让我再次检查。在将其放入div之前,我需要创建一些HTML。这不起作用:(.但是向下一个可以工作。但是为什么它不工作?@VeeKeyBee
此请求已被阻止…
这是当您未设置
JsonRequestBehavior.AllowGet
时得到的错误消息。因此,您的问题一直是这样的,可能应用程序未重建或浏览器缓存结果…使用e> return Json(…
将与您创建
JsonResult
和手动执行序列化时所做的基本相同…它可以工作。非常感谢。但是为什么它在我的代码中不工作?我也尝试了上面的方法,但不起作用。您能告诉我有什么不同吗?它在“敏感信息…”上返回相同的错误或者其他?很有效。非常感谢。但是为什么它在我的代码中不起作用?我也尝试了上面的方法,但它不起作用。你能告诉我有什么不同吗?它在“敏感信息…”或其他方面返回相同的错误?