数组的Razor中的下拉列表



我正试图在Razor中创建一个dropdownlist,Razor代码如下所示:

@for (int l = 0; l < Model.Entries.Count; l++)
{
@Model.Entries[l].StatusId
@Html.DropDownListFor(m => m.Entries[l].StatusId, Model.DropDownItems)
}

但输出仅变为

1003
<select id="Entries_0__StatusId" name="Entries[0].StatusId">
<option value="1001">1001 option 1</option>
<option value="1002">1002 option 2</option>
<option value="1003">1003 option 3</option>
</select> 
1002
<select id="Entries_1__StatusId" name="Entries[1].StatusId">
<option value="1001">1001 option 1</option>
<option value="1002">1002 option 2</option>
<option value="1003">1003 option 3</option>
</select> 

例如,1003值也应该选择选项1003,但没有选择任何内容

我的模型只是一个simpel数组,还包含下拉列表的所有值。

public class MyModel
{
public List<MyModelEntry> Entries { get; set; }
public List<SelectListItem> DropDownItems { get; set; }
}
public class MyModelEntry
{
public string StatusId { get; set; }
}

人口数量也微不足道。

public ActionResult Get(int Id)
{
var model = new MyModel();
model.DropDownItems = new List<SelectListItem>()
{
new SelectListItem { Value = "1001", Text = "1001 option 1" }, 
new SelectListItem { Value = "1002", Text = "1002 option 2" },
new SelectListItem { Value = "1003", Text = "1003 option 3" }
};
model.Entries = new List<MyModelEntry>()
{
new MyModelEntry { StatusId = "1003" },
new MyModelEntry { StatusId = "1002" }
};
return View(model);
}

有人能发现哪里出了问题吗。我不太擅长Razor,所以欢迎所有建议。

在这种情况下,您可以使用SelectList:

@for (int l = 0; l < Model.Entries.Count; l++)
{
@Model.Entries[l].StatusId
@Html.DropDownListFor(m => m.Entries[l].StatusId, 
new SelectList(Model.DropDownItems, "Value", "Text", Model.Entries[l].StatusId))
}

最新更新