问题描述
|
我想在我的asp.net MVC2视图中创建一个dropdownlist,下面是代码:
foreach (var whiteout in Model)
{
%>
<tr>
<td>
<%= whiteout.Field.NiceName%>
<% Html.DropDownListFor(\"anyname\",Model); %>
<%
}
}
%>
但我收到第二个参数不正确的错误。第二个参数是一个列表。这是在局部视图顶部声明模型的方式:
<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl<IEnumerable<EnviroTracker.Entities.Whiteout>>\" %>
请建议如何解决此问题?
解决方法
DropDownListFor
辅助函数将SelectList
作为第二个参数,并将lambda表达式作为简单属性的第一个:
<%= Html.DropDownListFor(
x => x.SomeProperty,new SelectList(Model.SomeList,\"ValueProperty\",\"TextProperty\")
) %>
如果要使用弱类型的DropDownList
帮助程序,则可以手动指定将绑定到的属性的名称,但是第二个参数仍应为SelectList
:
<%= Html.DropDownList(
\"SomeProperty\",\"TextProperty\")
) %>