2010-12-08 62 views
3

我正在構建一個允許可信用戶通過表單手動更改參數設置的內部頁面。此設置的輸入是setupparameters(未知大小)的列表,每個列表都有一個特定的值列表。然後用戶可以爲全部或部分參數選擇一個值。處理未知輸入數量的ASP.NET MVC表單

我試圖用我的當前模型來說明本作的觀點

public class SetupModel 
    { 
     public List<SetupParameter> Parameters { get; set; } 
    } 

    public class SetupParameter 
    { 
     public string ParameterName { get; set; } 

     // list with text=paramvalue, value=paramvalueid 
     public SelectList ParameterValueList { get; set; } 
     // id of the selected parametervalue if any 
     public int? SelectedParameterValueID { get; set; } 
    } 

我在渲染這個視圖當前的嘗試:

<% using (Html.BeginForm("Update", "Parameters") {%> 
... 
<% foreach(var parameter in Model.Parameters) { %> 
      <div><%: parameter.ParameterName %></div> 
      <div><%: Html.DropDownListFor(x => parameter.SelectedParameterValueID, parameter.ParameterValueList, "Please select") %></div> 

<% } %> 
... 

我的問題是如何呈現視圖這使我可以提交表單並獲得一個合理可理解的模型回到我的表單動作,這將允許我獲取所選參數值的列表。我不知道這裏的最佳做法或技巧,所以我會很感激任何反饋我得到:)

回答

4

你可以嘗試使用一個FormCollection

public ActionResult Submit(FormCollection formCollection) 
{ 
    //Iterate form collection to get fields 

    return View(); 
} 
0

您可能會發現這個帖子由菲爾哈克有用:Model Binding To A List

另請注意,您還需要爲每個參數發回一個標識符(例如ParameterName),以便您可以確定哪個值對應於控制器中的參數。

相關問題