I am having a bugger of a time trying to figure out where I am going wrong. Scenario is this. Trying to add an object that has a foreign key in it with mvc entity framework.\[code\]public class Person{ [Key] public virtual int PersonId { get; set; } [Display(Name = "First Name")] [Required] [MaxLength(50)] public virtual string FirstName { get; set; } [Display(Name = "Last Name")] [Required] [MaxLength(50)] public virtual string LastName { get; set; } [Required] public virtual int TestItem { get; set; } [Required(ErrorMessage = "Please Select an Employee Type")] public virtual EmployeeType EmployeeTypeId { get; set; }} public class EmployeeType{ [Key] public virtual int EmployeeTypeId { get; set; } [Required] public virtual string EmployeeTypeName { get; set; }}\[/code\]Those are the two pocos for the entities. \[code\] public ActionResult Create() { PersonViewModel pv = new PersonViewModel(); ViewBag.EmployeeTypeSelect= new SelectList(db.EmployeeTypes, "EmployeeTypeId", "EmployeeTypeName"); return View(pv); } // // POST: /Person/Create [HttpPost] public ActionResult Create(PersonViewModel personVM) { if (ModelState.IsValid) { Person person = new Person(); person.EmployeeTypeId = personVM.EmployeeTypeId; person.FirstName = personVM.FirstName; person.LastName = personVM.LastName; person.TestItem = personVM.TestItem; db.Persons.Add(person); db.SaveChanges(); return RedirectToAction("Index"); } return View(personVM); }\[/code\]That is the controller.\[code\]@model MvcApplication3.Models.PersonViewModel@{ViewBag.Title = "Create";}<h2>Create</h2>@using (Html.BeginForm()) {@Html.ValidationSummary(true)<fieldset> <legend>PersonViewModel</legend> <div class="editor-label"> @Html.LabelFor(model => model.FirstName) </div> <div class="editor-field"> @Html.EditorFor(model => model.FirstName) @Html.ValidationMessageFor(model => model.FirstName) </div> <div class="editor-label"> @Html.LabelFor(model => model.LastName) </div> <div class="editor-field"> @Html.EditorFor(model => model.LastName) @Html.ValidationMessageFor(model => model.LastName) </div> <div class="editor-label"> @Html.LabelFor(model => model.TestItem) </div> <div class="editor-field"> @Html.EditorFor(model => model.TestItem) @Html.ValidationMessageFor(model => model.TestItem) </div> <div class="editor-label"> @Html.LabelFor(model => model.EmployeeTypeId) </div> <div class="editor-field"> @Html.DropDownListFor(model=>model.EmployeeTypeId,(SelectList)ViewBag.EmployeeTypeSelect) @Html.ValidationMessageFor(model => model.EmployeeTypeId) </div> <p> <input type="submit" value="http://stackoverflow.com/questions/14594455/Create" /> </p></fieldset>}<div> @Html.ActionLink("Back to List", "Index")</div>@section Scripts {@Scripts.Render("~/bundles/jqueryval")}\[/code\]That is the view.Everything works fine with the view off the initial get, but when I post the EmployeeTypeId has a null value. I check the source and the select list is fine, has proper values and text. Please help as I have no clue where i am going wrong.Thanks