Construire un vide MVC DropdownListFor pour une Cascade de Sous-Liste
Je voudrais construire un vide Dropdownlistfor à reçu les résultats d'une précédente Dropdownlisfor sélection:
La véritable vue:
<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>
La réalité, le régulateur (de travail que j'avais à construire un vide SelectedList mais il semble étrange d'avoir à le faire):
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);
}
Est-il un moyen de construire quelque chose comme ça:
@Html.DropDownListFor(m => m.Model_Id, null)
Et enlever les //construction de la Dropdownlist pour les Modèles à partir du contrôleur?
Grâce
Vous devez vous connecter pour publier un commentaire.
Trouvé une solution qui je pense est le meilleur car il car aucun appel de service pour construire la dropdroplist vide et c'est fortement typé:
Voici de travail:
Personnellement, je voudrais faire cela avec un peu de jQuery et une autre vue partielle. Votre formulaire pourrait ressembler à ceci:
et puis dans votre contrôleur:
et il suffit ensuite de coller votre liste déroulante dans le GetModels vue partielle