如何使用jquery动态刷新和显示列表?

how to dynamically refresh and display the list with jquery?

我正在添加评论部分,但在显示它们时遇到了一些问题。这是我的省钱方法

[HttpPost]
public JsonResult AddComment(int id_usr,string comment)
{
   if (ModelState.IsValid)
   {
       Comments kom = new Comments();
       kom.DateComment = DateTime.Now;
       kom.Id_usr = id_usr;
       kom.Comment = comment;
       db.Comments.Add(kom);
       db.SaveChanges();
       return Json(kom);
   }
   return Json(null);
}

获取评论值并点击保存

var url = window.location.pathname;
var idurl = url.substring(url.lastIndexOf('/') + 1);
$('#submit').click(function () {
  console.log('click')
  $.ajax({
  url: '/form/AddComment',
  method: 'POST',
  data: {
        comment: $("#Comments_Comment").val(),
        id_usr: idurl,
  },
  success: function (data) {
         console.log(data), //to this point all is working

我在列表中显示它的尝试如下所示:(只需要日期时间和注释文本)

$("#Comments2_Comment").empty(); 
data.forEach(function (item) {
var rows = "<ul>"
+ "<li>" + item.DateComment + "</li>"
+ "<li>" + item.Comment + "</li>"
+ "</ul>";
$('#Comments2_Comment').append(rows);
});

},

不幸的是它给了我:"TypeError: data.forEach is not a function" 它应该是什么样子?

我想要这样的东西

  • 2019-06-19: qwertyu
  • 2019-06-19: asdfghj
  • 好的,这是您可以执行的操作的快速示例。我刚刚创建了一个 JSON 字符串并将其解析为一个用于演示的对象,但您可以使用自己的对象。然后你只需要使用 jQuery 的 $.each 循环遍历它就可以了。如果对您有帮助,请告诉我。

    let data = '{"names":[{"name":"Michael S."},{"name":"Jim H."},{"name":"Pam B."}]}'
    
    data = JSON.parse(data)
    
    let str = '';
    
    $.each(data.names, (key, val) => {
      str += '<ul><li>' + val.name + '</li></ul>'
    })
    
    $('#myDiv').empty().append(str)
    
    li {
      background-color: yellow;
    }
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <div id="myDiv">
    </div>