将循环中的项目ID传递给Jquery

时间:2019-01-24 15:34:27

标签: jquery asp.net-mvc razor asp.net-core .net-core

我正在为每个评论构建一个“喜欢”按钮,并使用jQuery将数据发布到data-bind="visible: isMissingData"。如何为循环中的每个项目传递ID值 public async Task<JsonResult> GetRegistrationRequirementAsync() { string StudentID = CurrentUser.PersonId; try { var requirement = await ServiceClient.L09GetRegistrationRequirementAsync(StudentID); RegistrationRequirementModel registrationRequirementModel = new RegistrationRequirementModel(requirement); return Json(registrationRequirementModel, JsonRequestBehavior.AllowGet); } catch (Exception e) {} } ?用jQuery代码处理它的正确方法是什么?

PostsController
@item.Id
@foreach (var item in Model.PostComments)
{ 
  <a id="@item.Id" class="btn btn-success"><span class="glyphicon glyphicon-thumbs-up"></span></a>
 }

1 个答案:

答案 0 :(得分:4)

当前存在的问题是,您的jQuery代码仅在id循环中的一个Model.PostComments上分配了-大概是最后一个。您在引用Model.PostComment.Id时遇到相同的问题。

将一个通用类应用于您在循环中创建的a元素,然后从中读取id属性并在请求中发送它,这样会更有意义: / p>

@foreach (var item in Model.PostComments)
{ 
  <a id="@item.Id" class="btn btn-success btn-like" href="#"><span class="glyphicon glyphicon-thumbs-up"></span></a>
}
$(document).ready(function() {
  $('a.btn-like').click(function(e) {
    e.preventDefault();
    $.ajax({
      url: '@Url.Action("CommentUp", "Posts")',
      data: { id: this.id }
    });
  });
});

请注意在示例中使用Url.Action()而不是对URL进行硬编码。