【发布时间】:2011-10-19 06:04:21
【问题描述】:
这看起来应该很简单,但我不知道如何使它工作。
我的数据模型有一个“Server”表和一个“ServerType”表。两个表的 PK 都是整数,Server 有一个 ServerTypeId 字段,它是 ServerType.Id 的 fk。
我有一个键入到 IEnumerable 的 Razor List.cshtml:
@model IEnumerable<Server>
<table border="1">
<tr>
<th>
Server Type
</th>
<th>
Name
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DropDownListFor(modelItem => item.ServerTypeId, (IEnumerable<SelectListItem>)ViewData["ServerType"])
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}
</table>
我的控制器有:
public ActionResult List()
{
var s = GetServers();
ViewData["ServerType"] = GetServerTypes();
return View("List", s);
}
private List<SelectListItem> GetServerTypes()
{
string id;
SelectListItem si;
List<SelectListItem> sl = new List<SelectListItem>();
IQueryable<ServerType> items = (from t in _entities.ServerTypes select t);
foreach (var item in items)
{
id = item.Id.ToString();
si = new SelectListItem { Value = id, Text = item.Description };
sl.Add(si);
}
return sl;
}
这会显示数据,但未选择下拉列表中的值。我已经尝试了 Html.DropDownList 和 Html.DropDownListFor,ViewData 属性的名称排列不同,最后有和没有 Id。
我是否需要创建一个具有 ServerType 副本的视图模型才能设置 Selected 属性?还是因为我的 id 是整数,而 SelectItemList Value 属性是字符串,所以这是个问题?
【问题讨论】:
标签: asp.net-mvc-3 drop-down-menu razor selecteditem