Asp.net mvc 2 Asp.NETMVC下拉列表数据绑定 理论 器具 实验室

Asp.net mvc 2 Asp.NETMVC下拉列表数据绑定 理论 器具 实验室,asp.net-mvc-2,drop-down-menu,Asp.net Mvc 2,Drop Down Menu,我想在控制器中绑定这个DropDownList。我的意思是如何在控制器类中的action方法中获得dropDownList的值。谢谢。我看到您正在使用带有runat=“server”和asp:XXXweb控件的表单。这些都是ASP.NETMVC中不应该使用的概念。这些服务器控件不再依赖ViewState和回发 因此,在ASP.NET MVC中,首先要定义一个表示数据的视图模型: 公共类ItemsViewModel { 公共字符串SelectedItemId{get;set;} 公共IEnumer

我想在控制器中绑定这个DropDownList。我的意思是如何在控制器类中的action方法中获得dropDownList的值。谢谢。

我看到您正在使用带有
runat=“server”
asp:XXX
web控件的表单。这些都是ASP.NETMVC中不应该使用的概念。这些服务器控件不再依赖ViewState和回发

因此,在ASP.NET MVC中,首先要定义一个表示数据的视图模型:

公共类ItemsViewModel
{
公共字符串SelectedItemId{get;set;}
公共IEnumerable项{get;set;}
}
然后,您将定义一个具有两个操作的控制器(一个用于呈现视图,另一个用于处理表单提交):

公共类HomeController:控制器
{
公共行动结果索引()
{
var模型=新项目VIEWMODEL
{
项目=新[]
{
新建SelectListItem{Value=“理论”,Text=“理论”},
新建SelectListItem{Value=“Appliance”,Text=“Appliance”},
新建SelectListItem{Value=“Lab”,Text=“Lab”}
}
};
返回视图(模型);
}
[HttpPost]
公共行动结果索引(ItemsViewModel模型)
{
//此操作将在提交表单并
//model.SelectedItemId将包含所选值
...
}
}
最后,您将编写相应的强类型
索引
视图:


主页
x、 SelectedItemId,new SelectList(Model.Items,“Value”,“Text”))%>
也就是说,您也可以在视图中硬编码此选择(尽管这是我不推荐的):


理论
器具
实验室
并具有以下控制器:

公共类HomeController:控制器
{
公共行动结果索引()
{
返回视图();
}
[HttpPost]
公共操作结果索引(字符串selectedItem)
{
//此操作将在提交表单并
//selectedItem将包含所选值
...
}
}

如何使用此代码var model=new ItemsViewModel{Items=new[]{new SelectListItem{Value=“Theory”,Text=“Theory”},new SelectListItem{Value=“Appliance”,Text=“Appliance”},new SelectListItem{Value=“Lab”,Text=“Lab”} }; 如果我想从数据库中获取drop downlist的值。请告诉我,如果我从数据库中获取值,我应该怎么做,然后我将使用什么代码?@Pushpendra Kuntal,这将取决于您使用的数据库、数据库表模式的外观以及您使用的数据库访问技术。
                    <form id="Form1" runat="server">
                        <asp:DropDownList ID="dvmDrmList" runat="server">
                            <asp:ListItem>Theory</asp:ListItem>
                            <asp:ListItem>Appliance</asp:ListItem>
                            <asp:ListItem>Lab</asp:ListItem>
                        </asp:DropDownList>
                    </form>