我正在为每个评论构建一个“喜欢”按钮,并使用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>
}
答案 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进行硬编码。