我在razor MVC中创建了这个硬编码的dropdownlist,但我想用循环创建它,因为它只包含整数值:
@Html.DropDownListFor(model => model.Bedrooms, new SelectList(new[] { new { ID = 1, Name = "1" }, new { ID = 2, Name = "2" }, new { ID = 3, Name = "3" }, new { ID = 4, Name = "4" }, new { ID = 5, Name = "5" }, new { ID = 6, Name = "6" }, new { ID = 7, Name = "7" } }, "ID", "Name"), "-Bedrooms-")
答案 0 :(得分:0)
我建议为您的模型添加额外的属性。 并在构造函数中填充List,或者您可以将其直接放入额外属性的get中并删除该集合。为了更容易,我只需将它放在构造函数中。
视图模型
public class ViewModelName
{
...
public ViewModelName()
{
PossibleAmountOfBedRooms = new List<SelectListItem>();
for(int i; i < 8; i++)
PossibleAmountOfBedRooms.Add(new SelectListItem{Text=i.ToString(), Value=i.ToString()});
}
public List<SelectListItem> PossibleAmountOfBedRooms {get; set;}
...
}
然后在您的视图中,您可以执行以下操作
@Html.DropDownListFor(model => model.Bedrooms, Model.PossibleAmountOfBedRooms , "-Bedrooms-")
还有另一种方法,但我不喜欢这种工作方式。 这样,您可以在视图中构建选择而不使用辅助方法(非强类型)。如果您在没有注意到的情况下代码失败,那么您可以更改ViewModel。
在您的视图中:
...
<select Id="Bedrooms" name="Bedrooms">
<option value="">-Bedrooms-</option>
@for(int i; i < 8; i++)
{
<option value="@i">@i</option>
}
</select>
...