まず、私は.NET MVCを初めて使用しますが、以前は一般的なMVCのアイデアを使用していました。EntityFrameworkを使用してCodeFirstで.NETMVC4を使用しています。
「作成」ビューに単純なドロップダウンを追加して、ユーザーが別のモデルに関連する外部キーを選択できるようにしようとしています。
関連するコードは次のとおりです。
ビュー(PropertyProgram / Create)から:
<div class="editor-field">
@Html.DropDownListFor(model => model.Program.ID, new SelectList(ViewBag.Programs, "Id","Name"));
@Html.ValidationMessageFor(model => model.Program.ID);
</div>
コントローラ(PropertyProgramController)から:
public ActionResult Create()
{
ViewBag.Programs = db.Programs;
return View();
}
モデル(PropertyProgram)から:
public class PropertyProgram
{
public int Id { get; set; }
public virtual Program Program { get; set; }
}
ビューは正しく機能し、正しいデータがドロップダウンに表示されますが、何らかの理由で、投稿後、IDを除くすべてのフィールドがnullの新しい行がデータベースのプログラムテーブルに作成されます。予想される動作は、作成されたPropertyProgram行で、ドロップダウンで選択されたプログラムIDがデータベースのProgram_ID列に配置されることです。これが期待どおりに動作しない理由はありますか?