I would like to build an empty Dropdownlistfor to received the results of a previous Dropdownlisfor selection:
The actual view:
<div id="makes">
@Html.DropDownListFor(m => m.Make_Id, Model.MakeList, HeelpResources.DropdownlistMakeFirstRecord)
</div>
<div id="models">
@Html.DropDownListFor(m => m.Model_Id, Model.ModelList, HeelpResources.DropdownlistModelFirstRecord)
</div>
The actual Controller (to work I had to build an empty SelectedList but it seems strange to have to do this):
public virtual ActionResult Create()
{
// Build the Dropdownlist for the Makes
var makesDto = _makeService.ListAllMakes();
var makesViewModel = Mapper.Map<IList<MakeDto>, IList<MakeViewModel>>(makesDto);
// Build the Dropdownlist for the Models
var makeId = -1;
var modelsDto = _modelService.ListModelByMake(makeId);
var modelsViewModel = Mapper.Map<IList<ModelDto>, IList<ModelViewModel>>(modelsDto);
// Build the ViewModel to return to the View
CreateAdViewModel viewModel = new CreateAdViewModel();
viewModel.MakeList = new SelectList(makesViewModel, "ID", "Name");
viewModel.ModelList = new SelectList(modelsViewModel, "ID", "Name");
return View(viewModel);
}
Is there a way to build something like this: @Html.DropDownListFor(m => m.Model_Id, null)
And remove the // Build the Dropdownlist for the Models from the controller?
Thanks
Found a solution that I think is the best because it as no service call to build the dropdroplist empty and it's strongly typed:
@Html.DropDownListFor(m => m.Model_Id, Enumerable.Empty<SelectListItem>(), HeelpResources.DropdownlistModelFirstRecord)
The following is working:
@Html.DropDownListFor(m => m.Model_Id, **new SelectList(new List<string>()**));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With