最新バージョンを考慮して、これを達成するための最良の方法を見つけようとしています。VS2012 MVC4 EF5 を使用しており、データベースから edmx ファイルを作成しました。ベンダー情報を送信できるフォームを作成しました。主なテーブルは、主に連絡先情報を含む Vendor テーブルであり、複数のカテゴリの選択肢 (チェックボックス リスト) を格納する追加のテーブルと、マイノリティ情報 (ラジオ ボタンのコレクション) を格納する別のテーブルがあります。したがって、私の ViewModel はベンダー テーブルであり、チェックボックスとラジオ ボタンにビュー バッグを設定して、ルックアップ テーブルの値を照会します。
したがって、カテゴリと少数派の部分をViewModelに構築し、何らかの方法で魔法を結び付けて、データベースが返された値を保存する方法を認識できるようにするか、ビューバッグを使用して、ポストでそれらの値を読み取ってループする必要があると思いますそれらをデータベースに保存するには?いずれにせよ、私は立ち往生しており、これを行う方法がわかりません。
オンラインで多数の例を検索しましたが、この状況に適合するものはありません。これは複雑なデータ モデルではありませんが、現実世界でよく見られる状況です。私は MVC を初めて使用するので、明らかな何かが欠けている場合はご容赦ください。
任意のガイダンスをいただければ幸いです。
更新: ViewModel を db に保存するための基本的なコードを次に示しますが、チェックボックス リストとラジオ ボタンをどのように保存しますか。1) ViewModel に何らかの方法でそれらを含める方法、または 2) フォームのチェックボックスとラジオ ボタンの値を保存する別の機能を実行する方法の 2 つがあると思います。
[HttpPost]
public ActionResult Form(VendorProfile newProfile)
{
if (ModelState.IsValid)
{
newProfile.ProfileID = Guid.NewGuid();
newProfile.DateCreated = DateTime.Now;
_db.VendorProfiles.Add(newProfile);
_db.SaveChanges();
return RedirectToAction("ThankYou", "Home");
}
else
{
PopuplateViewBags();
return View(newProfile);
}
}
おそらく、私の問題を別の言い方をすれば、人々がサインアップして、31 種類のフレーバーのリストから好きなアイスクリームのフレーバーをすべて選択するためのフォームを作成する必要があるとしたらどうなるでしょうか。個人の連絡先情報をプライマリ テーブルに保存してから、フレーバーの選択肢のコレクションを別のテーブルに保存する必要があります (1 対多)。お問い合わせフォーム用の ViewModel と、ルックアップ テーブルから表示されるフレーバーのリスト (チェックボックス リスト) があります。このフォームを保存するコードをどのように記述しますか?