您可能为 selectedValue 参数发送了错误的值。您应该在 SelectList 构造函数中设置值。
<%: Html.DropDownList("basic-qualification-container" + i.ToString(),
new SelectList((IEnumerable<Dial4Jobz.Models.Degree>)ViewData["CandidateBasicQualifications"],
"Id",
"Name",
ViewData["selectedValue"]), //set selected value here
new { @class = "qualification" })%>
更好的方法是将 ViewData 中的所有数据放入模型中,然后将其强类型化到您的视图中。
以下是您定义模型的方式:
public class SampleModel
{
private string SelectedOption { get; set; }
private IEnumerable<SelectListItem> Options { get; set; }
}
然后在您的操作方法中提供值:
public ActionResult Index()
{
//get data from db
SampleModel model = new SampleModel
{
SelectedOption = selectedOption,
Options = new SelectList(options, "Id", "Name")
};
return View(model);
}
在将视图强输入到 SampleModel 之后,您可以在视图中使用 Html.DropDownListFor 助手。
<%: Html.DropDownListFor(model => model.SelectedOption,
Model.Options,
new { @class = "qualification" }) %>