У меня есть DropDownList, который содержит правильные элементы и значения при визуализации представления, но выбранное значение не сохраняется в указанном поле объекта Garage. В настоящее время значение, которое сохраняется и возвращается, равно 0 (None) как для создания, так и для редактирования методов публикации. Я уверен, что это что-то простое, но я не могу понять это ... Спасибо заранее!Не удалось сохранить значения Enum в поле сущности из DropDownList - EF Code First MVC3
Модель Класс:
public enum GarageType { None = 0, One = 1, Two = 2, Three = 3, Four = 4 }
public int Garage { get; set; }
[NotMapped]
public GarageType GarageEnumValue
{
get { return (GarageType)Garage; }
set{ Garage = (int)value; }
}
Контроль Создание и редактирование методов и выглядеть следующим образом:
var statuses = from Property.GarageType s in Enum.GetValues(typeof(Property.GarageType))
select new { ID = (int)s, Name = s.ToString() };
ViewBag.GarageId = new SelectList(statuses, "ID", "Name", statuses.FirstOrDefault().ID);
Последний представления:
@Html.DropDownList("GarageId", String.Empty)
Это исправило мою проблему с созданием и теперь правильное значение сохраняется в поле таблицы Garage. Когда я пытаюсь отредактировать эту же запись, DropDownList не заполняется с тем же выбранным значением, когда я создал запись. Значение возвращается к нулю. Я добавил эту строку как для создания, так и для редактирования методов @ Html.DropDownList («GarageEnumValue», (SelectList) ViewBag.GarageId, String.Empty) – Shawn
Я нашел решение своего последнего вопроса, чтобы не использовать первый параметр строки GrageEnumValue, но вместо этого перейдите прямо к собственности Garage: @ Html.DropDownList («Garage», (SelectList) ViewBag.GarageId, String.Empty) Спасибо за помощь! ~ – Shawn
Смотрите мой учебник DDL http://www.asp.net/mvc/ tutorials/javascript/work-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc и http://blogs.msdn.com/b/rickandy/archive/2012/ 01/09/cascasding-dropdownlist-in-asp-net-mvc.aspx – RickAndMSFT