在SelectList下拉列表中,我喜欢如果Count为1,我喜欢默认drugfamilylist中的值,在这种情况下只有1个值。我无法弄清楚如何做到这一点。 我有以下内容:
var drugfamilylist = (from dt in DataContext.Drugs
select dt.Drugvalue).Distinct().ToList();
if (drugfamilylist.Count == 1)
{
ViewBag.DrugFamily = new SelectList(drugfamilylist);
}
我试过但是idd不起作用:
var drugfamilylist = (from dt in DataContext.Drugs
select dt.Drugvalue).Distinct().ToList();
if (drugfamilylist.Count == 1)
{
ViewBag.DrugFamily = new SelectList(drugfamilylist,drugfamilylist);
}
答案 0 :(得分:0)
通常我会对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 ))
这是徒手写的,没有经过测试。我希望它有所帮助。