【发布时间】:2018-06-28 00:21:01
【问题描述】:
我不太确定我错过了什么。我的 ajax 调用如下所示:
$.ajax({
type: 'GET',
url: "NaiveSentiment/commentValues",
contentType: "application/json; charset=utf-8",
datatype: "json",
success: function (result) {
$('#naiveComments').append("<ul id='newList'></ul>");
var keys = Object.keys(result);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
// console.log(key, result[key]);
$("#newList").append("<li>" + result[key] + "</li>");
}
调用的方法如下所示:
[System.Web.Mvc.HttpGet]
public JsonResult commentValues()
{
NaiveAnalysisAction naiveAnalysisAction = new NaiveAnalysisAction();
return Json(naiveAnalysisAction.getCommentAndValues(), JsonRequestBehavior.AllowGet);
}
和 getCommentAndvalues() 方法:
public String getCommentAndValues()
{
return JsonConvert.SerializeObject(commentAndValue);
}
“文本”部分是实际的 youtube 评论,而数字实际上是我根据评论的情感价值添加的值。如您所见,所有内容都存储在字典中,该字典作为 Json 对象返回. 那本字典以文本部分为“键”,数字部分为值。
我的问题是我应该改变什么才能使用实际的 KEY(评论本身?)成功更新无序列表,我发布的方式做了一件奇怪的事情:输出实际上就像我正在阅读的解析器按每个字符。因此,它不是显示全文,而是将其分块并逐个显示每个字母
【问题讨论】:
-
return Json()序列化您的对象。您不需要使用SerializeObject()第二次序列化它 -
既然您使用的是 mvc,为什么不创建一个局部视图并在其中格式化 html 而不是在视图中的 javascript 中。
-
@StephenMuecke 真棒抓住斯蒂芬!不知怎的,我错过了!
-
@Fran 老实说,我不太熟悉你想说什么,但我会查一下。谢谢你的提示!
标签: jquery json asp.net-mvc parsing