2012-06-29 101 views
-1

通常,當您有多個輸入字段時,它們都綁定到一個ID。因此,從視圖到數據庫的映射相當簡單。然而,在我的情況下,我有多個輸入(例如,一行中的2個文本框和另一行中的下拉列表和文本框),每個輸入都有一個ID。我希望能夠按下提交按鈕並正確更新它。如何通過mvc 3中的提交按鈕提交多個輸入字段?

注意:formRow是一個ViewModel。

一些示例代碼:

<div class="ctrl"> 
       &nbsp; 
       @{ 
        foreach (var rowInput in formRow.RowInput) 
        { 
         switch (rowInput.RowCtrl.Type) 
         { 
          case "dropdown": 
           ; break; 
          case "text": 
           @Html.TextBoxFor(blah => rowInput.InputtedData) ; break; 
          case "radio": 
           ; break; 
          case "checkbox": 
           ; break; 
         }  
        } 
       } 
      </div> 
      <div class="done"> 
       <input id="@formRow.RowInput[0].InputtedDataID" type="button" value="button" /> 
      </div> 

實際HTML源視圖:

<div class="ctrl"> 
       &nbsp; 
<input id="rowInput_InputtedData" name="rowInput.InputtedData" type="text" value="UP, UP, DOWN, DOWN, LEFT, LEFT, RIGHT, RIGHT, B, A, B, A, START" />   </div> 
      <div class="done"> 
       <input id="2" type="button" value="button" /> 
      </div> 
+0

當你說'並且正確地更新它'你到底在說什麼? –

+0

你在做什麼代碼?爲什麼不把你的元素與一個有意義的模型綁定? –

+0

當我按下提交按鈕時,輸入將被保存到正確的記錄(ID)。 – dotnetN00b

回答

1

我得到你需要閱讀一些MVC3基本印象。從我收集的內容來看,您只是試圖提交表單數據以進行服務器端處理,而這對於MVC3來說是非常直接的。通常情況下,您將擁有一個控制器,其中的某個操作能夠返回一些ActionResult,該ActionResult通常恰好是一個View,可視化您創建的基礎Model。在視圖中,您可以使用Html.BeginForm()來構建基於此模型的表單。

提交按鈕將發送一個帖子到同一個控制器,但是然後到一個能夠處理結果模型的帖子的動作。

This blog post總結了很好的你所需要的最基本的部件知道:

  • 從Global.asax中,添加表示你想趕上並映射到控制器/動作一定URL模式路由對象
  • 添加控制器子類,它的[ControllerActions]應該響應請求被調用,填充ViewData的
  • 添加使用的ViewData呈現一些HTML
視圖模板3210

這篇文章的其餘部分可能會也可能不會很有趣,這取決於您想要獲得的技術。

我建議看一些建立MVC3應用程序的基本介紹。嘗試通過這一個工作:http://www.asp.net/mvc/tutorials/older-versions/javascript/creating-a-mvc-3-application-with-razor-and-unobtrusive-javascript

+0

我贊成你,因爲你是對的。我需要一個進修。 – dotnetN00b