可能我只是不知道如何谷歌,但我试图找到一个示例,其中下拉控件被数据绑定到一个集合(这部分对我有用),然后我想读取drop向下选择回变量。此变量可以是模式的属性。绑定下拉选择值返回变量是我遇到麻烦的地方。在网络表单世界中,这没什么大不了的,但由于某些原因,我无法使用MVC 3.任何代码示例或示例都将受到高度赞赏。
答案 0 :(得分:4)
在ASP.NET MVC中执行此操作的推荐方法是使用视图模型。设计下拉列表时,在此视图模型上需要2个属性:一个用于将所选值绑定到,另一个用于表示将用于生成选项的值和文本集合。然后你可以使用第一个属性来预选一个给定的选项。
所以我们从设计视图模型开始:
public class MyViewModel
{
public string SelectedId { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
然后是一个控制器动作,用于填充此视图模型:
public ActionResult Index()
{
var model = new MyViewModel
{
// preselect the second item which has value=2
SelectedId = "2",
Items = new[]
{
new SelectListItem { Value = "1", Text = "item 1" },
new SelectListItem { Value = "2", Text = "item 2" },
new SelectListItem { Value = "3", Text = "item 3" },
}
};
return View(model);
}
并在强类型视图中使用DropDownListFor
帮助程序生成下拉列表:
@model MyViewModel
@Html.DropDownListFor(
x => x.SelectedId,
Model.Items,
"-- Select an Item --"
)
答案 1 :(得分:0)
您可以在模型中绑定下拉列表值,如下所示:
public virtual SelectList ddlvalue
{
get
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "Yes", Value = "Y" });
list.Add(new SelectListItem() { Text = "No", Value = "N" });
return new SelectList(list, "Value", "Text");
}
set { }
}