Asp.net mvc Asp.net MVC增量按钮

Asp.net mvc Asp.net MVC增量按钮,asp.net-mvc,button,increment,Asp.net Mvc,Button,Increment,在Asp.NETMVC中,我想在每次单击表单提交按钮时增加一个模型属性 我已经尝试了HttpGet和HttpPost。对于HttpGet,该值总是被querystring覆盖,并且总是0。对于HttpPost,值从0开始,我单击按钮,它将递增为1。但我再单击它时,它将以0的形式出现,并递增为1 据我所知,它输入0,0+1=1,输出0 简单来说: @using (Html.BeginForm()) { @Html.HiddenFor(x=>x.Value) or @Html.Hidd

在Asp.NETMVC中,我想在每次单击表单提交按钮时增加一个模型属性

我已经尝试了HttpGet和HttpPost。对于HttpGet,该值总是被querystring覆盖,并且总是0。对于HttpPost,值从0开始,我单击按钮,它将递增为1。但我再单击它时,它将以0的形式出现,并递增为1

据我所知,它输入0,0+1=1,输出0

简单来说:

@using (Html.BeginForm())
{
    @Html.HiddenFor(x=>x.Value) or @Html.Hidden("Value", Model.Value)
    or even <input type="hidden" value="@Model.Value" />
    <input type="submit" value="Click Me" />
}

public ViewResult ActionMethod(Model model)
{
    model.Value++;
    return View(model);
}
我的问题基本上是: 但是在MVC框架中

如何像这样操纵模型属性?我不想使用Javascript。

您必须调用

UpdateModel(model); 

IIRC.

据我所知,这是唯一的解决方案:

我觉得这很管用,但真的很糟糕

int temp = ++model.Value;
ModelState.Remove("Value");
model.Value = temp;

如果我将模型参数传递给视图,视图应该通过获取我在模型当前状态下传递的任何内容来绑定该参数。

信不信由你,我甚至可以说JQuery可能是最好的解决方案。这只是一件非常简单的事情,可以在客户端完成,而无需太多麻烦。更新的解决方案是实现这一点的唯一方法。MVC将使用发布的值更新您的视图,因此您必须清除它们。ASP.NET MVC没有这些。我希望这会很容易,但我不能让它做任何不同的事情。你一定要在某个时间打电话吗?据我所知,UpdateModel用于在控制器中绑定模型。根据我的观察,那部分很好。是视图没有更新。我没有时间做一个有效的示例,但是IIRC:完成更新后调用UpdateModel。然后像您那样调用returnviewmodel。暗中刺杀:尝试model.Value+=1;或model.Value=model.Value+1;另外:使用Fiddler检查OutyourWeb服务器中的内容。