通过单击按钮 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)
}
提前谢谢你!
您使用的是后缀增量运算符。运算的结果是操作数在递增之前的值。因此,如果首次初始化 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)" />