ASP.NET MVC拆分控制器操作:点赞点踩功能问题求助
详情页点赞功能生效但点踩失效,需拆分独立控制器操作
我有一个依赖卡片展示数据的网站,Detail操作负责展示单条数据详情。详情页内的点赞(Like)和点踩(Dislike)按钮需要基于该数据操作。我尝试用同一个Detail方法里的if语句实现两个功能,但只有点赞生效,点踩完全失效。现在我想给Like和Dislike创建独立的控制器操作,以下是我目前的代码:
原控制器代码(DetailController.cs)
public async Task<IActionResult> Detail(int id, bool like, bool dislike) { Post post = await _postInterface.GetByIdAsync(id); // Likes if (like) { post.Like += 1; _context.Update(post); await _context.SaveChangesAsync(); } // Dislikes if (dislike) { post.Dislike += 1; _context.Update(post); await _context.SaveChangesAsync(); } return View(post); }
已定位点踩失效的原因,附前端相关代码:
前端页面代码(Details.cshtml)
<div class="btn-group" role="group" id="UserVotes" pt-1"> <!-- Like --> <input type="checkbox" class="btn-check" id="Likebtn" name="Votegroup[]" autocomplete="off"> <a asp-controller="Post" asp-action="Detail" class="btn btn-outline-success btn-sm shadow-none" for="Likebtn" onclick="Like(@Model.Id, true)">@Model.Like Likes</a> <!-- Dislike --> <input type="checkbox" class="btn-check" id="Dislikebtn" name="Votegroup[]" autocomplete="off"> <a asp-controller="Post" asp-action="Detail" class="btn btn-outline-danger btn-sm shadow-none" for="Dislikebtn" onclick="Dislike(@Model.Id, true)">@Model.Dislike Dislikes</a> </div>
前端交互脚本(like-dislike.js)
function Like(id, like) { $.ajax({ type: "POST", data: { id: id, like: like }, url: 'Like', }).done(function (result) { var html = "" for (var i = 0; i < result.length; i++) { html += '<tr><td>' + result[i].id + '</td><td>' + result[i].Like + '</td><td><button onclick="Like(' + result[i].id + ',true)">Like</button></td></tr>' } document.getElementById("UserVotes").innerHTML = html; }); } function Disike(id, dislike) { $.ajax({ type: "POST", data: { id: id, dislike: dislike }, url: 'Disike', }).done(function (result) { var html = "" for (var i = 0; i < result.length; i++) { html += '<tr><td>' + result[i].id + '</td><td>' + result[i].Dislike + '</td><td><button onclick="Dislike(' + result[i].id + ',true)">Dislikes</button></td></tr>' } document.getElementById("UserVotes").innerHTML = html; }); }
问题已解决
已完成独立控制器操作的改造,问题解决,感谢支持。
内容的提问来源于stack exchange,提问作者ZNAXNOR
相关产品推荐
相关产品推荐

