-5

C# と SQL Server 2005 を使用して ASP .Net MVC 3 アプリケーションを開発しています。

Entity Framework と Code First Method も使用しています。

私はこのフォームを持っています: ここに画像の説明を入力

「登録者」ボタンをクリックしたときに、リスト (またはコレクション) に入力した値を保存したいと考えています。

これは View のコードです:

 <fieldset class="parametrage">
        <legend>Gestion de Gamme</legend>

        <div><%:Html.Label("Poste :")%><%: Html.DropDownList("SelectedPoste", Model.PostesItems)%><input type="checkbox" name="option1" value="Poste Initial" id= "chkMain" onclick="test();"/>Poste Initial<input type="checkbox" name="option2" value="Poste Final" id= "chkFirst" onclick="test2();"/>Poste Final</div>


         <div><%:Html.Label("Nombre de Passage :")%><%: Html.EditorFor(x=>x.YourGammeModel.Nbr_Passage)%></div>
        <div><%:Html.Label("Position :")%><%: Html.EditorFor(x=>x.YourGammeModel.Position)%></div>
        <div><%:Html.Label("Poste Précédent :")%><%: Html.DropDownList("PostePrecedentSelected", Model.PostesItems)%></div>
        <div><%:Html.Label("Poste Suivant :")%><%: Html.DropDownList("PosteSuivantSelected", Model.PostesItems)%></div>


        <div><input type="submit" value="Enregistrer" id="btnSave"  /></div>

        </fieldset>

ビューモデル:

private static Dictionary<string, Gamme> userGammes; 

public static Dictionary<string, Gamme> UserGammes 
{ 
    get 
    { 
        if (userGammes == null) 
        { 
            userGammes = new Dictionary<string, Gamme>(); 
        } 
        return userGammes; 
    } 
} 

そしてコントローラー:

    public ActionResult Save(Gamme gamme)
    {
        UserGammes.Add("currentUserID", gamme);
    }
4

1 に答える 1

1

一般に、選択できる類似のもののリストがある場合 (つまり、複数選択リスト ボックス)、コレクションを使用します。MVCMはデータモデルです。それがないと本当にうまくいきません。

必要なフィールドを含むクラスを作成し、そのクラスをビューに渡す必要があります。

public class UserGammeModel {
  public string PosteItems
  public string NobreDePassage { get; set; }
  public string Position { get; set; }
  public Gamme PostePrecedent { get; set; }
  public Gamme PosteSuivant { get; set; }
}

モデル クラスのプロパティに適したオブジェクト型を使用してください。

次に、コントローラーの GET アクション メソッドでモデルをビューに渡します。

public ActionResult Save() {
  return View(new UserGammeModel());
}

最後に、コントローラーの POST アクション メソッドでポストされた値を処理します。

[HttpPost]
public ActionResult Save(UserGammeModel model) {
  // Do stuff with posted model values here
}
于 2013-05-17T22:46:45.343 に答える