ActionType というモデルがあるとします。
public class ActionType
{
public int ActionTypeID { get; set; }
...
}
SelectList がこの同じプロパティ名を使用しているため、ModelBinder は正しい POSTed 値の設定を処理します。
new SelectList(query.AsEnumerable(), "ActionTypeID", "ActionTypeTitle");
--------------------------------------------^
アクションで使用している Model クラスに同じ名前のプロパティを追加することを忘れないでください。
-------------------------------v Add the property to this class.
[HttpPost]
public ActionResult Create(SomeModel model)
{
}
これが例です。次のエンティティが Entity Framework によって既に生成されているとします。
Person Country
------- -------
PersonID CountryID
FullName Name
CountryID
[HttpPost]
public ActionResult Create(PersonModel model)
{
if (ModelState.IsValid)
{
DbEntities db = new DbEntities();
Person person = new Person();
person.FullName = model.FullName;
person.CountryID = model.CountryID; // This value is from the DropDownList.
db.AddToPersons(person);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
// Something went wrong. Redisplay form.
return View(model);
}
POSTed ID 値をエンティティ オブジェクトの外部キー プロパティに設定するだけです。