2012-04-20 63 views
0

在Asp.Net MVC我想增加每個表單提交(按鈕點擊)的模型屬性。Asp.net MVC遞增按鈕

我試過HttpGet和HttpPost。使用HttpGet,該值始終由查詢字符串覆蓋,並且始終爲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); 
} 

我的問題基本上是這樣的: Increment number per button click C# ASP.NET 但在MVC框架中。

你如何操縱這樣的模型屬性?我不想使用Javascript。

+0

相信與否,我會盡可能地說JQuery可能是您的最佳解決方案。這只是一個非常簡單的事情,可以在沒有太多麻煩的情況下完成客戶端 – mattytommo 2012-04-20 22:30:41

+0

您的更新解決方案是實現它的唯一方法。 MVC將使用發佈的值更新您的視圖,因此您必須清除它們。 – 2012-04-20 23:25:11

回答

0

從我被告知,這是唯一的解決辦法:

我發現這個工作,但它的真正可怕

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

如果我通過一個模型參數的觀點,視圖應該通過在模型當前狀態下傳遞的參數來綁定該參數。

-2

你必須調用

UpdateModel(model); 

IIRC。

+2

ASP.NET MVC沒有。 – 2012-04-20 22:45:20

+0

我希望這會很容易,但我不能讓它做任何不同的事情。有一段時間你必須打電話嗎?從我讀過的內容來看,UpdateModel用於綁定控制器中的模型。從我的觀察來看,那一部分沒有問題。這是沒有更新的視圖。 – quitstalin 2012-04-20 22:51:24

+0

我沒有時間做一個工作示例,但是IIRC: 當您完成更新時調用UpdateModel(model)。然後像你一樣調用返回View(模型)。 刺在黑暗中:Try model.Value + = 1;或model.Value = model.Value + 1; 另請參閱:使用Fiddler檢查進入Web服務器的內容。 – LosManos 2012-04-23 06:46:01