asp.net mvc2 dropdownlistfor
我想在我的asp.net MVC2视图中创建一个dropdownlist,我的代码如下:asp.net mvc2 dropdownlistfor,asp.net,asp.net-mvc-2,Asp.net,Asp.net Mvc 2,我想在我的asp.net MVC2视图中创建一个dropdownlist,我的代码如下: foreach (var whiteout in Model) { %> <tr> <td> <%= whiteout.Field.NiceName%> <% Html.DropDownListFor("anyname", Model); %> <% }
foreach (var whiteout in Model)
{
%>
<tr>
<td>
<%= whiteout.Field.NiceName%>
<% Html.DropDownListFor("anyname", Model); %>
<%
}
}
%>
foreach(模型中的var变白)
{
%>
但我得到的错误是第二个参数不正确。第二个参数是一个列表。下面是如何在局部视图顶部声明模型:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<EnviroTracker.Entities.Whiteout>>" %>
请建议如何解决此问题?帮助程序将
SelectList
作为第二个参数,将简单属性的lambda表达式作为第一个参数:
<%= Html.DropDownListFor(
x => x.SomeProperty,
new SelectList(Model.SomeList, "ValueProperty", "TextProperty")
) %>
@Darin:我没有x=>x.SomeProperty,它显示x.list函数/集合函数,因为我的模型是collection@DotnetSparrow,如果您想使用强类型的
DropDownListFor
helper,那么您应该修改此部分的视图模型类型,这是我推荐的视图模型将有两个属性:一个要绑定的标量属性和一个包含下拉列表值的集合属性,下拉列表值将是可枚举的。然后,您将强式地将视图键入这个新的视图模型。@Darin:我使用了这个:并且我得到了数据绑定:“EnviroTracker.Entities.Whiteout”不包含带有“温度”这个名字。@Darin:我无法创建viewmodel,因为我调用的是这样的部分视图:Html.RenderPartial(“WhiteoutList”,Model.Whiteouts);而不是来自控制器。@DotnetSparrow,嗯,错误消息似乎不言自明。当然,就视图模型而言,您可以创建一个。您只需修改主视图模型的Whiteouts
属性。它不应再是集合,而应是我建议您使用的新视图模型。
<%= Html.DropDownList(
"SomeProperty",
new SelectList(Model.SomeList, "ValueProperty", "TextProperty")
) %>