Я пытаюсь получить раскрывающийся список, чтобы отправить его выбор по HTTP POST вместе с другими связанными данными. Я могу видеть значение внутри коллекции форм, но мне VS2010 говорит, что объект имеет значение NULL, когда я смотрю на другие опубликованные объекты.Выпадающий список MVC3, возвращающий NULL в объекте модели
Эта модель имеет много для одного отношения:
[Key]
public int ProgramTypeId { get; set; }
public string ProgramType { get; set; }
public List<SurveyProgramModels> SurveyProgramModel { get; set; }
Эта модель использует ProgramTypeId в качестве внешнего ключа
public class SurveyProgramModels
{
[Key]
public Guid ProgramId { get; set; }
public virtual SurveyProgramTypeModels SurveyProgramTypeModels { get; set; }
public int ProgramYear { get; set; }
public int ProgramStatus { get; set; }
}
контроллер GET/POST
//
// GET: /SurveyProgram/Create
public ActionResult Create()
{
SelectList typelist = new SelectList(db.SurveyProgramTypeModels.ToList(), "ProgramTypeId", "ProgramType", db.SurveyProgramTypeModels);
ViewData["SurveyProgramTypeModels"] = typelist;
return View();
}
//
// POST: /SurveyProgram/Create
[HttpPost]
public ActionResult Create(SurveyProgramModels surveyprogram, FormCollection collection)
{
SelectList typelist = new SelectList(db.SurveyProgramTypeModels.ToList(), "ProgramTypeId", "ProgramType", db.SurveyProgramTypeModels);
ViewData["SurveyProgramTypeModels"] = typelist;
// int SelectedCollection = Int32.Parse(collection["ProgramTypeId"]);
if (ModelState.IsValid)
{
surveyprogram.ProgramId = Guid.NewGuid();
db.SurveyPrograms.Add(surveyprogram);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(surveyprogram);
}
Выбор списка в вид:
<div class="editor-field">
@Html.DropDownList("ProgramTypeTypeModels", (IEnumerable<SelectListItem>)ViewData["SurveyProgramTypeModels"])
@Html.ValidationMessageFor(model => model.SurveyProgramTypeModels)
</div>
Список выбора корректен при визуализации в представлении, и я вижу выбранное значение как часть коллекции форм. Я не уверен, почему выбранное значение не сохраняется вместе с другими данными для SurveyProgramModels.
Редактировать: Я должен также упомянуть, что данные отправляются правильно, когда я удаляю связь между двумя классами.