我在使用 Html.DropDownListFor 显示选定值时遇到问题。我有一个使用多个下拉菜单的视图,所有下拉菜单都被填充,但没有选择任何内容。我对每个下拉菜单都有相同的选择,但选择的值不同。这是我的视图模型:
public class ViewPersonTargetingViewModel
{
public List<PersonTarget> Targets { get; set; }
public SelectList TargetStatuses { get; set; }
}
这就是我制作 SelectList 的方式:
var statuses = DataAccess.GetPersonTargetStatuses();
TargetStatuses = new SelectList(statuses, "PersonTargetStatusUuid", "PersonTargetStatusName");
我的 PersonTarget 类:
public class PersonTarget
{
public string PersonTargetStatusName { get; set; }
public Guid PersonTargetStatusUuid { get; set; }
//and more
}
这就是我创建 DropDownList 的方式:
<%: Html.DropDownListFor(model => model.Targets[k].PersonTargetStatusUuid, Model.TargetStatuses)%>
其中 k 是通过目标列表的迭代。
我使用相同的 SelectList 来填充所有 DropDowns,它包含如下信息:
- 文本:A 值:b2e4a939-06d8-4052-8abf-5c1b2a5e8591
- 文本:B 值:0b59faaa-514d-4212-93cd-6b0a50b8f151
- 文本:C 值:5575f3cf-33f8-41df-be73-a176a3db5ed5
例如,当我试图让它显示“B”时,我给了他正确的目标状态,但它仍然显示第一个元素(“A”)被选中,我什至打印出我给他的值,并且我知道它Model.Targets[k].PersonTargetStatusUuid
的值是:0b59faaa-514d-4212-93cd-6b0a50b8f151(它是“B”的 Guid),但它仍然显示“A”。我没有办法解决这个问题。非常感谢任何帮助,谢谢:)。