【发布时间】:2017-11-01 00:02:21
【问题描述】:
我有一个年龄的 int 属性,以及一个可供选择的可能年龄的选择列表。检索数据进行编辑时,添加 tostring() 方法时出现错误:
模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。
所以我的视图模型看起来像:
public int LowerAgeLimit { get; set; }
public List<SelectListItem> Ages { get; set; }
我的查询正在正确检索数据,然后在视图中我试图让数据显示如下:
@Html.DropDownListFor(x => x.LowerAgeLimit.ToString()
, Model.CreateGroupForm.Ages
, new { @class = "form-control" })
如果没有 tostring() 方法,它会显示空白,这是有道理的,因为它需要一个字符串。但它不会让我在没有错误的情况下转换为字符串。我也尝试在视图模型中创建一个新的字符串 Age 属性,并在查询中将 int 转换为字符串,但我仍然无法让下拉列表显示该值。
在查询中,我填写了如下年龄列表:
model.CreateGroupForm.Ages.Insert(0, (new SelectListItem { Text = "", Value = "" }));
for (int i = 1; i < 100; i++)
{
model.CreateGroupForm.Ages.Insert(i, (new SelectListItem {Text = i.ToString(), Value = i.ToString()}));
}
【问题讨论】:
-
您不需要 .ToString() - 转换为 int 由模型绑定器自动处理。我有很多带有整数参数的 Html.DropDownListFor。
-
很高兴知道,知道为什么它不显示数据吗?
-
我认为您需要向我们展示您如何填充 Model.CreateGroupForm.Ages
标签: c# asp.net-mvc