Razor DropDownList用于不显示ViewModel中设置的SelectedValue
我正在使用Razor DropDownList用于不显示ViewModel中设置的SelectedValue,razor,model-view-controller,dropdownlistfor,Razor,Model View Controller,Dropdownlistfor,我正在使用DropDownListFor来显示条目中的周列表。如果编辑现有条目,则所选周显示正常 当您要创建新条目时,所选值为myoptionLabel。我想选择StartDate大于日期时间的第一周。现在 当我应用断点时,正确的ID被设置为SelectList的SelectedValue,但它不会显示在DropDownList for中,当我查看开发人员工具时,也不会显示选项“selected”。任何帮助都会很好 视图: 控制器: int currentWeekOfId = selectabl
DropDownListFor
来显示条目中的周列表。如果编辑现有条目,则所选周显示正常
当您要创建新条目时,所选值为myoptionLabel
。我想选择StartDate大于日期时间的第一周。现在
当我应用断点时,正确的ID被设置为SelectList的SelectedValue,但它不会显示在DropDownList for
中,当我查看开发人员工具时,也不会显示选项“selected”。任何帮助都会很好
视图:
控制器:
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);
您的问题是DropDownListFor
首先获取您的model.reportData.WeekId
值。
就像您正在创建一个新的实体一样,我想象reportData.WeekId
是NULL
,因此帮助者在SelectList中使用NULL
或空值获取第一项
您不应该使用currentWeekOfId
初始化您的模型.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=新的TBL3Preport()…而不是。。。reportData=new tbl3preport(){WeekId=currentWeekOfId}
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);
}