gpt4 book ai didi

javascript - Jquery,获取在asp.net core中的foreach循环中创建的每个div的文本?

转载 作者:行者123 更新时间:2023-12-03 01:03:19 24 4
gpt4 key购买 nike

我正在开发一个 Asp.net core 项目,在我的 index.cshtml View 中,我有这样的东西

index.cshtml

@model IEnumerable<jquery.Models.Comment>

<div>
@foreach (var item in Model)
{
<ul style="list-style:none;">
<li>
<button class="btn btn-success" id="btnlike">
@item.LikeCount
</button>

<div id="cmid">@item.Id</div>
</li>
</ul>
}
</div>


@section Scripts{
<script>
$(document).delegate('#btnlike', 'click', function (e) {
e.preventDefault();
var post_data = $('#cmid').text();

$.ajax({
type: 'POST',
url: '@Url.Action("Like", "Home")',
data: { 'cid': post_data }
})
});
</script>
}

在我的 index View 中,有一个 foreach 循环,它创建一些 li 并且每个 li 包含一个 按钮。我想单击任何按钮将 @item.id 发布到 HomeControllerLike 操作。但现在点击任何按钮,只有 div 的第一个 id 被发布到 controllercid 参数在 Like 操作中为 1 。

家庭 Controller

public class HomeController : Controller
{
public IActionResult Index()
{
var model = new List<Comment>
{
new Comment {Id = 1,LikeCount = 5},
new Comment {Id = 2,LikeCount =15},
new Comment {Id = 3, LikeCount = 20},
new Comment {Id = 4, LikeCount = 14},
};
return View(model);
}

[HttpPost]
public IActionResult Like(int cid)
{
return View();
}

评论模型

public class Comment
{
[Key]
public int Id { get; set; }

public int LikeCount { get; set; }

}

最佳答案

如上所述,您不能重复 ID...

为什么不尝试另一种方法:

@model IEnumerable<jquery.Models.Comment>

<div>
@foreach (var item in Model)
{
<ul style="list-style:none;">
<li>
<button class="btn btn-success" onclick="submitPost(@item.Id)">
@item.LikeCount
</button>

<div id="cmid">@item.Id</div>
</li>
</ul>
}
</div>


@section Scripts{
<script>
function submitPost(postId)
{
$.ajax({
type: 'POST',
url: '@Url.Action("Like", "Home")',
data: { cid: postId }
});
}
</script>
}

关于javascript - Jquery,获取在asp.net core中的foreach循环中创建的每个div的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com