c# – 为什么我的$.ajax调用不会从cshtml文件返回一个json对象?
我有这个
jquery使用ajax试图返回一个json对象,但我不是ajax的专业人士,虽然我之前使用过json,只是我正在加载一个json文件而不是试图从cshtml返回一个字符串查询数据库以获取信息的页面(正如我在这里所做的那样).
这是jQuery: $.ajax({ url: "/AJAX Pages/Compute_Calendar_Events.cshtml",async: true,type: "GET",dataType: "json",contentType: "application/json",success: function (jsonObj) { console.log("AJAX SUCCESS!"); },error: function (jqXHR,textStatus,error) { alert("NO AJAX!"); } }); (我也试过“application / json; charset = UTF-8”作为contentType,但它没有改变任何行为). 这是我指向AJAX的cshtml页面: @{ Layout = ""; if(IsAjax || 1==1) { string jsonString = "{"events":["; string selectQueryString = "SELECT title,summary,eventDate FROM CalendarEvents ORDER BY eventDate ASC"; var db = Database.Open("Content"); foreach (var row in db.Query(selectQueryString)) { jsonString += "{"; jsonString += ""title":" + Json.Encode(row.title) + ","; jsonString += ""dateNumber":" + Json.Encode(row.eventDate.ToString().Substring(0,row.eventDate.ToString().IndexOf("/"))) + ","; jsonString += ""dateMonth":" + Json.Encode(row.eventDate.ToString().Substring(row.eventDate.ToString().IndexOf("/") + 1,row.eventDate.ToString().LastIndexOf("/") - (row.eventDate.ToString().IndexOf("/") + 1))) + ","; jsonString += ""dateYear":" + Json.Encode(row.eventDate.ToString().Substring(row.eventDate.ToString().LastIndexOf("/") + 1,4)) + ","; jsonString += ""summary":" + Json.Encode(row.summary); jsonString += "},"; } jsonString = jsonString.TrimEnd(','); jsonString += "]}"; /*System.IO.File.Delete(Server.MapPath("~/TEST.txt")); var outputFile = System.IO.File.AppendText(Server.MapPath("~/TEST.txt")); outputFile.Write(jsonString); outputFile.Close();*/ @* *@@jsonString } else { Response.Redirect("~/"); } } 注意以下几点非常重要: >我没有得到服务器端错误或错误代码. 感谢大家的帮助.我相信我已经找到了这个问题(意想不到的&符号终于让我的头脑中出现了一个灯泡).我已经在此页面中添加了答案,以防将来可能对其他人有所帮助. 解决方法
我有类似的问题,
我已经通过标题WebMatrix中.cshtml文件顶部的标题解决了这个问题 @{ Response.AddHeader("Content-Type","application/json"); } 要检查的另一件事是您的JSON通过验证.将JSON结果复制粘贴到JSON验证器中并确保它通过. (你已经这样做了,我希望这个问题的未来读者能够看到这一点). 以下是您可以获取JSON的示例代码 $.getJSON("/AJAX Pages/Compute_Calendar_Events.cshtml").done(function(result){ alert("Success!"); console.log(result); }).fail(function(){ alert("Error loading"); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |