通过单击按钮 MVC4 asp.net C# 来增加计数

本文关键字:增加 net asp 单击 按钮 MVC4 | 更新日期: 2023-09-27 18:32:39

我有一个关于如何表示 1 增量的问题,我真的希望我能解决这个问题,

这是我家里的东西控制器

 public ActionResult OpenBidPanelOnItem( int _NumberOfVotes)
    {
        ViewBag.Message = "Place Vote on User Confirmation";
        Session["UserMessage"] = "Vote Success";     
        try
        {
            MyVoteModel _MyVoteModel = new MyVoteModel();            
            _NumberOfVotes =   _MyVoteModel.NumberOfVotes++;
        }
        catch
        {
            Session["UserMessage"] = "Vote Error";
        }
        return RedirectToAction("DisplayStore", "Home");
    }

这就是我的看法

using (Html.BeginForm("OpenBidPanelOnItem", "Home", FormMethod.Post))
    {
        <button  type="submit"  value="Vote" style="background-color: green; width: 60px"> <b style="color:snow">Vote</b></button>
              @Html.Hidden("NumberOfVotes", Model.NumberOfVotes)
    }

提前谢谢你!

通过单击按钮 MVC4 asp.net C# 来增加计数

您使用的是后缀增量运算符。运算的结果是操作数在递增之前的值。因此,如果首次初始化 NumberOfVotes 的值为零(默认值),则_NumberOfVotes值将为零MyVoteModel

_NumberOfVotes =   _MyVoteModel.NumberOfVotes++; // return zero

目前尚不清楚这有什么意义。你可以使用

_MyVoteModel.NumberOfVotes = ++_NumberOfVotes;

递增传递给方法的参数值,然后将其分配给MyVoteModel的新实例,但随后重定向,因此该值无论如何都会丢失

我不是 100% 确定你在这里问什么,但我要打个赌注。可能是Html.Hidden仍在使用与第一次相同的值,即 0,并且在 POST 之后,您发现 0 仍在传递给视图模型?

递增该数字不会导致向用户显示新值。我在一篇博客文章中提到了这一点:

http://mrclyfar.blogspot.co.uk/2014/08/why-are-my-form-values-being-cached.html

要解决此问题,请改用以下命令:

<input type="hidden" id="NumberOfVotes" value="@(Model.NumberOfVotes)" />