2010-03-29 126 views
3

問候!控制器參數數量未知?

我正在做一個ASP.NET MVC 2的表單,在我看來我有一個TextBox的名稱和兩個按鈕。 其中一個按鈕用於提交,另一個按鈕具有JS中的功能,添加了另一個文本框和一個下拉列表。

在後控制器操作方法中,如何獲取所有參數? 這裏是查看代碼:

<body> 
    <div> 
     <%using (Html.BeginForm()) 
      { %> 
      New Insurance Type Name: 
      <%=Html.TextBox("InsuranceName") %> 
      <div id="InsuranceDetails"/> 
    </div> 
    <div id="Buttons"> 
     <input type="button" onclick="AddFieldForm()" value="Add Field" /> 
     <p /> 
     <input type="submit" value="Submit" /> 
     <%} %> 
    </div> 
</body> 

回答

2

你可以只使用控制器上的形式採集參數,並確保您的生成文本框具有唯一的ID。

public ActionResult SomeMethod(FormCollection formValues) 
{ 
    foreach (string key in formValues) 
    {     
     if (key.ToLower().StartsWith("form-text-")) 
     {      
      //Do Something  
     } 
    } 
} 
+0

非常感謝。 – StackPointer 2010-03-29 14:32:28

0

如果你正在處理的表單中的項目員額任意數量的,我建議編碼與JavaScript的客戶端的信息,這樣你實際上只將單個項目發送回您的控制器。 JSON似乎是明顯的選擇。

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

+0

但我怎麼做,如果我不知道有多少項目,我得到了什麼?我應該給他們所有獨特的id屬性? 謝謝。 – StackPointer 2010-03-30 08:47:01