Как правило, я бы имел строго типизированный View для ViewModel.ViewModel будет содержать как список доступных элементов, так и соответствующее значение текущего выбранного элемента.
public class MyViewModel
{
public IList<string> DrugFamilyList;
public string SelectedDrugFamily;
}
В контроллере вы можете заполнить список доступных элементов и выбранных элементов, когда списокдоступные элементы были одним элементом.
public ActionResult MyAction()
{
var vm = new MyViewModel();
vm.DrugFamilyList = (from dt in DataContext.Drugs
select dt.Drugvalue).Distinct().ToList();
vm.SelectedDrugFamily = (vm.DrugFamilyList.Count==1) ?
vm.DrugFamilyList[0] : null;
return View(vm);
}
А затем используйте HtmlHelper для построения поля выбора:
@Html.DropDownListFor(m => m.SelectedDrugFamily, new SelectList(Model.DrugFamilyList, Model.SelectedDrugFamily))
Однако, если вы не хотите использовать рекомендованный шаблон ViewModel, вы всегда можете сделать то же самое с ViewBag.
ViewBag.DrugFamilyList = (from dt in DataContext.Drugs
select dt.Drugvalue).Distinct().ToList();
ViewBag.SelectedDrugFamily = (ViewBag.DrugFamilyList.Count==1) ?
ViewBag.DrugFamilyList[0] : null;
А затем в View использовать похожий помощник:
@Html.DropDownList("desiredfieldname", new SelectList(ViewBag.DrugFamilyList, "", "", ViewBag.SelectedDrugFamily ))
Это было написано от руки и не проверялось.Надеюсь, это поможет.