微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MVC具有多个会话的多个按钮例如:赞

如何解决MVC具有多个会话的多个按钮例如:赞

我正在尝试创建一个页面,您可以在该页面中对MVC 5中动态添加的帖子进行投票,并对每个帖子的投票进行计数。

 @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.ActionLink(item.Title,"Details",new { id = item.Id })
                </td>
                <td>
                    <img src="@item.imgurL" style="max-width: 200px;" />
                </td>
                <td>
                    @Html.displayFor(modelItem => item.UpVotes)
                    <button id="upVotes">UpVote</button>
                </td>
                <td>
                    @Html.ActionLink("Edit","Edit",new { id = item.Id }) |
                    <button class="js-delete" data-model-id="@item.Id">Delete</button> |
                    @Html.ActionLink("Add to Hot Page","AddToHot",new { id = item.Id })
                </td>
            </tr>
        }

UpVotes显示在按钮的前面,是否有某种方法可以使用Session将按钮分配给UpVotes数量

和p.s.有多个帖子具有自己特定的赞数。

附加代码

public ActionResult UpVote(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Meme meme = db.Memes.Find(id);
            if (meme == null)
            {
                return HttpNotFound();
            }
            meme.UpVotes++;
            db.Memes.Remove(db.Memes.Find(id));
            db.Memes.Add(meme);
            db.SaveChanges();
            return View(meme);
        }

P.S,我已将<button id="upVotes">UpVote</button>更改为

@Html.ActionLink("UpVote","UpVote",new { id = item.Id })

解决方法

for循环中的

<button id="upvotes">Upvote</button>将在Id属性中呈现具有相同值的所有按钮。将其更改为以下内容:

<button id="upvotes@item.Id">Upvote</button>

这将导致以下结果:

<button id="upvotes1">Upvote</button>
<button id="upvotes2">Upvote</button>
<button id="upvotes3">Upvote</button>
...

回到实际问题,您没有共享处理upvote的操作的代码。那个动作的返回类型是什么?

我假设这是一个ajax动作和一个子动作,然后我猜您正在从该动作中返回该帖子的总投票数。

在这种情况下,您可以将返回的数字(例如15)附加到显示总数的容器中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。