我想建立一个空的Dropdownlistfor接收以前的Dropdownlis选择的结果:
实际看法:
<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>
实际的控制器(要工作,我必须构建一个空的SelectedList,但它似乎很奇怪,必须这样做):
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,"Name"); return View(viewModel); }
有没有办法建立这样的东西:
@ Html.DropDownListFor(m => m.Model_Id,null)
并从控制器中删除//为模型构建下拉列表?
谢谢
解决方法
找到一个我认为是最好的解决方案,因为它没有服务调用来构建dropdroplist为空,它是强类型的:
@Html.DropDownListFor(m => m.Model_Id,Enumerable.Empty<SelectListItem>(),HeelpResources.DropdownlistModelFirstRecord)