2012-06-17 81 views
1

我想嘗試在我的MVC表單中分配一個變量值來輸入隱藏字段。我以爲我可以這樣做,但變量的價值並沒有被放到隱藏的領域。 任何想法,爲什麼這是一個錯誤的方式?ASP.NET MVC - 分配變量到輸入隱藏字段

注意:在變量聲明之間有一些代碼...我只是想讓事情變得簡單。代碼的特定行的錯誤我是:@value = @secondNumber

@{ 
    ViewBag.Title = "Jakub Holovsky - Contact"; 

    Random randomNumber = new Random(); 
    int firstNumber = randomNumber.Next(0, 11); 
    int secondNumber = randomNumber.Next(0, 11); 
    int sumNumber = firstNumber + secondNumber; 
} 

<div class="divLeftSide"> 
         <span>How much is @firstNumber + @secondNumber:</span> 
         @Html.TextBoxFor(m => m.FirstNumber, new { @type = "number", @id = "firstNumber", @class = "HiddenField", @value = @firstNumber }) 
         @Html.TextBoxFor(m => m.SecondNumber, new { @type = "number", @id = "secondNumber", @class = "HiddenField", @value = @secondNumber }) 
        </div> 

回答

0

1)創建一個名爲SomeModel的模型類。該類應該包含名爲FirstNumber和SecondNumber的屬性。

2)行

@model SomeModel 

添加到您的視圖。

3)移動

Random randomNumber = new Random(); 
int firstNumber = randomNumber.Next(0, 11); 
int secondNumber = randomNumber.Next(0, 11); 
int sumNumber = firstNumber + secondNumber; 

到控制器中的作用。

4)在你的控制器的動作,初始化SomeModel命名模型的新實例和FirstNumber設置爲firstNumber和SecondNumber到secondNumber

5)通過調用返回查看(模型)傳遞模型視圖;

6)從您的視圖中刪除@value = @firstNumber和@value = @secondNumber。

+0

你好,非常感謝你的回答,它有點幫助我更瞭解整個事情。但是這個想法是在控制器上生成隨機數字,然後通過它顯示。用戶將填寫這兩個數字的總和的結果,並將其傳回給我的控制器。我如何將這些數字保存在某處我指的是這兩個?我該如何堅持自己的價值觀?謝謝 –

+0

你現在可以做你正在做的事情,比如使用@@ Html.TextBoxFor,或者你可以使用默認隱藏的@@ Html.HiddenFor。然後在你的控制器中添加方法[HttpPost] public ActionResult SomeAction(SomeModel model),參數模型將從視圖中的@@ Html.HiddenFor中獲取FirstNumber和SecondNumber。您可能還想要將另一個屬性TheirSum添加到SomeModel以便顯示文本框@@ Html.TextBoxFor(m => m.TheirSum)並在控制器中檢索其值。 –

+0

謝謝!這幫助了我。還有一件事,MVC中保持狀態的最推薦的方式是什麼。會話嗎? –