在ASP.net Webmatrix下面发表评论

时间:2012-09-15 22:39:23

标签: asp.net webmatrix

我正在建立一个网站,里面会有帖子和各自的评论。

我正在显示帖子的方式是我循环记录并将它们放入div中。另外,我有另一个查询来从评论表中获取数据,这只给我点击帖子的相关评论。

问题在于,当我使用foreach循环在单独的div(在同一级别的post div下面)显示注释时,所有其他帖子下都会显示注释。我尝试使用$(此enter code here)。sibling和$(this).children()等,但它不起作用。

在jquery中,我隐藏了document.ready上的注释div,并在点击帖子时显示。

以下是代码片段:

@foreach(var row in selectposts)
{
  <div id ="posts">@row.posts</div>
  @foreach(var row in selectcomments)
  {
  <div id ="comment">@row.comments</div>
  }
}

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

@{
    var db = Database.Open("MyDatabase");
    var postsQuery = "SELECT * FROM Posts";
    var commentsQuery = "SELECT * FROM Comments WHERE PostId = @0";
}

@foreach(var post in db.Query(postsQuery)){
    <div class="post@post.Id">@post.PostContent</div>
    @foreach(var comment in db.Query(commentsQuery, post.Id)){
        <div class="comment@comment.Id">@comment.CommentContent</div>
    }
}

我刚刚将它直接键入SO,但它应该在某处附近。

jQuery正在您的OP中按预期工作,因为您始终使用相同的div ID。在这个例子中,每个post div都有一个唯一的Id(例如post127),因此可以通过jQuery单独引用它们。