2010-12-08 9 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> 

<% } %> 
... 

を私はフォームを提出し、フォームのアクションに合理的に理解できるモデルを戻して、選択されたパラメーター値のリストを得ることができます。私はここでのベストプラクティスやトリックを認識していないので、私は私はあなたがFormCollectionを使用して試みることができる:)

答えて

4

を取得する任意のフィードバックを感謝します:

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

    return View(); 
} 
0

あなたはフィル・ハークことで、この記事が役立つかもしれません:Model Binding To A List

各パラメータにも識別子(ParameterNameなど)をポストバックする必要があるので、どの値がコントローラのパラメータに対応しているかを確認できます。

関連する問題