访问 dataTextField 时选择列表失败
selectlist fails when accessing dataTextField
我正在尝试为以下列表创建下拉列表 class:
public class PrimulaPositionViewModel
{
public long Id { get; set; }
public Dictionary<string, string> Name { get; set; }
}
在我的 cshtml 视图中,我这样调用下拉列表:
@Html.DropDownList("Position", new SelectList(Model.Positions, "Id", "Name['sv']",
guise.PrimulaPositionId))
我的问题是 "Name['sv']" 没有获取字典中保存的值,而是使程序抛出错误。如果我只写 Name 那么我会得到一个错误,但是下拉列表只是输出 system.gen...... 来代表字典。
所以我想知道在视图中创建 SelectList 时如何访问 Name["sv"] 值。
我们通常把propertyName作为dataTextField放在SelectListItem中。
如果你想使用字典,你可以使用<select></select>
,并将Id和Name['sv']放入foreach的选项中:
<select>
@foreach (var item in Model.Positions)
{
if (item.Id == guise.PrimulaPositionId)
{
<option id="@item.Id" selected>@item.Name["sv"]</option>
}
else
{
<option id="@item.Id">@item.Name["sv"]</option>
}
}
</select>
我正在尝试为以下列表创建下拉列表 class:
public class PrimulaPositionViewModel
{
public long Id { get; set; }
public Dictionary<string, string> Name { get; set; }
}
在我的 cshtml 视图中,我这样调用下拉列表:
@Html.DropDownList("Position", new SelectList(Model.Positions, "Id", "Name['sv']",
guise.PrimulaPositionId))
我的问题是 "Name['sv']" 没有获取字典中保存的值,而是使程序抛出错误。如果我只写 Name 那么我会得到一个错误,但是下拉列表只是输出 system.gen...... 来代表字典。
所以我想知道在视图中创建 SelectList 时如何访问 Name["sv"] 值。
我们通常把propertyName作为dataTextField放在SelectListItem中。
如果你想使用字典,你可以使用<select></select>
,并将Id和Name['sv']放入foreach的选项中:
<select>
@foreach (var item in Model.Positions)
{
if (item.Id == guise.PrimulaPositionId)
{
<option id="@item.Id" selected>@item.Name["sv"]</option>
}
else
{
<option id="@item.Id">@item.Name["sv"]</option>
}
}
</select>