1

MVC フレームワークを使用して、メンティー データベース テーブルにメンティーを追加するビューを作成しました。メンティーに関連するすべての情報を入力することはできますが、学校のドロップダウン ボックスから選択した値をどのように取得し、id 値を相互参照テーブル mentee_school に入力するかがわかりません。注:学校のドロップダウン テーブルに既に値があります。例えば:

ここに画像の説明を入力

テーブルの関係:

ここに画像の説明を入力

メンティー ビュー モデル:

 public class MenteeViewModel
{

    public mentee mentee { get; set; }
    public guardian guardian { get; set; }
    public address address { get; set; }        
    public email email { get; set; }
    public user users { get; set; }
    public phnumber phnumber { get; set; }                
    public econtact econtact { get; set; }        
    [Display(Name = "School System")]
    public int SelectedSSystemId { get; set; }
    public IEnumerable<SelectListItem> SSystemItems { get; set; }
    [Display(Name = "School")]
    public int SelectedSchoolId { get; set; }
    public IEnumerable<SelectListItem> SchoolItems { get; set; }      

}

メンティー ビュー:

 <div class="editor-label">
        @Html.LabelFor(model => model.SelectedSchoolId)
    </div>        
    <div class="editor-field">
       @Html.DropDownListFor(model => model.SelectedSchoolId,(IEnumerable<SelectListItem>)ViewBag.school_ids, "--Select One--")
    </div>

メンティーコントローラー

 [HttpPost]
    public ActionResult Create(ViewModels.MenteeViewModel menteeViewModel )
    {
        if (ModelState.IsValid)
        {

            menteeViewModel.mentee.addresses.Add(menteeViewModel.address);
            menteeViewModel.mentee.guardians.Add(menteeViewModel.guardian);
            menteeViewModel.mentee.econtacts.Add(menteeViewModel.econtact);
            menteeViewModel.mentee.emails.Add(menteeViewModel.email);

            //Below statement doesn't work with current model
            menteeViewModel.mentee.schools.Add(menteeViewModel.SelectedSchoolId);

            db.mentees.Add(menteeViewModel.mentee);               
            db.SaveChanges();




            return RedirectToAction("Index");

        }

        return Create();
    }

私の質問は、ドロップダウン ボックスで選択した学校の値とメンティー ID を mentee_school 相互参照テーブルに保持するにはどうすればよいですか?

4

1 に答える 1