javascript - 从 JsonResult 返回字符串数组并在 JavaScript 中使用它

标签 javascript c# jquery arrays asp.net-mvc

我正在尝试查询数据库,并在我的网页中获取结果,但是它必须通过 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/

相关文章:

javascript - Tweet 变量或 html 类内容 - 随机引用机 - freeCodeCamp

c# - 将控件动态添加到表单时,只会显示一个

javascript - 焦点不适用于输入字段 Jquery

javascript - 如何触发tab键按钮事件?

javascript - 切换光标以显示我可以放置元素的位置

javascript - 如何从 JavaScript 变量数组生成随机图像到我的 HTML 文档中?

javascript - !function(){}() 究竟是如何工作的?

javascript - 组件不使用消费者显示

c# - asp.net gridview 分页和排序与 linq to sql 自定义 linq 语句

c# - Web 服务实例化对象 C#.NET