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" }) %>