我正在尝试查询数据库,并在我的网页中获取结果,但是它必须通过 JavaScript(Ajax、jQuery)来完成。我用谷歌搜索了几个小时,但没有任何效果。它要么抛出一个解析器错误,指出SyntaxError: Unexpected end of input
,要么只是显示为未定义。
我正在使用以下 JsonResult 方法:
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public JsonResult NextArticle(int slideID)
{
var articles = db.Slides.ToList();
var currentArticle = db.Slides.First(s => s.SlideId == slideID);
int articlePosition = articles.IndexOf(currentArticle);
articlePosition = (articlePosition + 1) >= articles.Count() ? 0 : articlePosition + 1;
var nextArticle = articles.ElementAt(articlePosition);
//nextArticle.Article.ArticleText.Substring(0, 50)+"..."
string[] returnParameters = {
nextArticle.SlideId.ToString(),
nextArticle.Image.ImageURL,
nextArticle.Article.ArticleTitle,
nextArticle.Article.ArticleText
};
return Json(returnParameters);
}
以及以下 JavaScript 函数:
function nextSlide() {
var articleLink = document.getElementsByTagName("a")[0];
$.ajax({
type: 'POST',
url: "../SlideShow/NextArticle",
data: {
slideID: articleLink.getAttribute("id"),
},
dataType: 'json', //Some places are saying I should leave this out
success: function (result) {
$(articleLink).id = result[0];
document.getElementById("articleImage").setAttribute("src", result[1]);
document.getElementById("articleTitle").innerHTML = result[2];
document.getElementById("articleText").innerHTML = result[3];
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
}
最佳答案
无需使用“dataType: 'json'
”
因为您已经在发送 Json 数据。所以它已经被解析了。
Json 数据以键值对形式发送。并且您无法通过这种方式访问。
您没有在代码中的任何位置使用“结果”参数。
结果是数组。并以这种方式访问键/索引,在我的情况下“status_code”是对象/变量我想访问它的值..
结果.status_code == 200;
success: function (result) {
result.status_code == 200;
$(articleLink).id = result.arrayKey_1;
document.getElementById("articleImage").setAttribute("src", result.arrayKey_1);
document.getElementById("articleTitle").innerHTML = result.arrayKey_2;
document.getElementById("articleText").innerHTML = result.arrayKey_3;
},
关于javascript - 从 JsonResult 返回字符串数组并在 JavaScript 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421273/