ASP.NET MVC 4 ViewModel с данными DropDownList
я использую@html.EditorFor
для рендеринга моей модели в режиме редактирования, а выпадающий список не отображается.
Вот моя ViewModel:
public class RiskAutoViewModel
{
public RiskAutoViewModel()
{
VehicleMakeList = new SelectList(new List<VehicleMake>() { new VehicleMake() { Id = 1, Name = "Renault" }, new VehicleMake() { Id = 2, Name = "Peugeot" } });
}
public int NoClaimsDegree { get; set; }
public int VehicleValue { get; set; }
public int EngineCapacity { get; set; }
public int VehicleMake { get; set; }
public SelectList VehicleMakeList { get; set; }
}
VehicleMake
отображается кактекстовое окно а такжеVehicleMakeList
не отображается вообще. Я хотел бы сделать выпадающий список, содержащий списокVehicleMake
и установите его значение на одно изVehicleMake
.
Когда модель сохранена, в VehicleMake должно быть установлено значение выбранного элемента в списке.
Как я могу это сделать ?
РЕДАКТИРОВАТЬ
Поскольку я не могу набрать какой-либо код в полях для комментариев ниже, я напишу продолжение здесь.
В итоге я создал шаблон EditorTemplate, такой как:
<div class="editor-label">
@Html.LabelFor(model => model.VehicleMakeList)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.VehicleMake, Model.VehicleMakeList)
@Html.ValidationMessageFor(model => model.VehicleMake)
</div>
И теперь моя ViewModel выглядит так:
[Required]
[ScaffoldColumn(false)]
public int VehicleMake { get; set; }
[Display(Name = "Marque", Prompt = "Marque", Description = "Renseigne la marque du véhicule")]
public SelectList VehicleMakeList { get; set; }
Теперь это приводит меня к другому вопросу (может быть, я должен как в другой теме), но у меня на самом деле есть два раскрывающихся списка в этом представлении. И элементы во втором раскрывающемся списке в основном динамические, и они зависят от элемента, выбранного в первом раскрывающемся списке. Это очень легко сделать с AJAX, но с MVC я заблудился. Как люди обычно это делают?