MVC - 下拉值未在视图中绑定

MVC - DropDown Value not Binding in View

在我看来,我使用的是 Helper DropDown。我面临的问题是数据是 not getting bindedDropDown。当我从 Controller 为 ShiftId 设置值时,应该在 DropDown 中选择该值,这在我的情况下没有发生。

@{Dictionary<string, string> shifts = (Dictionary<string, string>)ViewBag.Shifts;}
@Html.DropDownListFor(m => m[i].List[q].ShiftId, new System.Web.Mvc.SelectList(shifts, "Key", "Value"), "Select")

您在循环中生成下拉菜单,不幸的是这是助手的限制。您需要在每次迭代(您正在做的)中生成一个新的 SelectList,但您还需要在 SelectList 构造函数中设置所选值。

@Html.DropDownListFor(m => m[i].List[q].ShiftId, 
    new SelectList(shifts, "Key", "Value", Model[i].List[q].ShiftId),
    "Select"
)