【问题标题】:DropDownListFor not displaying the SelectedValue set in the ViewModelDropDownListFor 不显示 ViewModel 中设置的 SelectedValue
【发布时间】:2018-01-23 14:50:20
【问题描述】:

我使用DropDownListFor 在条目中显示周列表。如果您编辑现有条目,则选择的周显示得很好。

当你去创建一个新条目时,选择的值是我的optionLabel。我想选择 StartDate 大于DateTime.Now 的第一周。

当我应用断点时,正确的 ID 设置为 SelectList 的 SelectedValue,但它没有显示在 DropDownListFor 中,当我查看开发人员工具时,选项“已选择”也没有显示。任何帮助都会很棒。

查看:

@Html.DropDownListFor(model => model.reportData.WeekId, Model.weeksList, "-- Select Week Of --", htmlAttributes: new { @class = "form-control" })

控制器:

int currentWeekOfId = selectableWeeksList.Where(w => w.WeekStartDate > DateTime.Now).Select(s => s.Id).FirstOrDefault();
_3PViewModel vm = new _3PViewModel()
{
    weeksList = new SelectList(selectableWeeksList, "Id", "FullWeek", currentWeekOfId)
};
return PartialView(vm);

【问题讨论】:

    标签: razor model-view-controller dropdownlistfor


    【解决方案1】:

    您的问题是DropDownListFor 首先获取您的model.reportData.WeekId 值。 就像您正在创建一个新实体一样,我想 reportData.WeekIdNULL,所以助手使用 NULL 或空值获取 SelectList 中的第一项。

    您应该初始化您的新实体模型,而不是使用 currentWeekOfId 初始化您的 Model.weeksList

    public Action Create() {
        int currentWeekOfId = selectableWeeksList.Where(w => w.WeekStartDate > DateTime.Now).Select(s => s.Id).FirstOrDefault();
        _3PViewModel vm = new _3PViewModel()
        {
            weeksList = new SelectList(selectableWeeksList, "Id", "FullWeek"),
            reportData = nezw ReportData() { WeekId = currentWeekOfId }
        }
        return PartialView(vm);
    }
    

    【讨论】:

    • 就是这样!我有reportData,但我有它... reportData = new tbl3PReports() ...而不是... reportData = new tbl3PReports() { WeekId = currentWeekOfId }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多