具有选定值的静态列表的正确DropDownListFor HTML帮助器语法是什么?

时间:2013-01-09 19:05:53

标签: c# asp.net-mvc razor

有人可以用正确的语法帮助我吗?

不确定如何编写DropDownListFor HTML帮助器。如何使用基于Value属性3选择的“Mouse”来编写?我没有使用模型,只是想在剃刀内快速列出一个快速列表。

谢谢

var AnimalList = new List<SelectListItem>();
AnimalList.Add(new SelectListItem { Text = "Dog", Value = "1" });
AnimalList.Add(new SelectListItem { Text = "Cat", Value = "2" });
AnimalList.Add(new SelectListItem { Text = "Mouse", Value = "3" });
AnimalList.Add(new SelectListItem { Text = "Squirrel", Value = "4" });
AnimalList.Add(new SelectListItem { Text = "Fox", Value = "5" });


@Html.DropDownListFor(? , ?, ?);

2 个答案:

答案 0 :(得分:2)

如果没有型号,则无法使用@Html.DropDownListFor。但是你可以在没有模特的情况下使用@Html.DropDownList

在控制器中

var AnimalList = new List<SelectListItem>();
AnimalList.Add(new SelectListItem { Text = "Dog", Value = "1" });
AnimalList.Add(new SelectListItem { Text = "Cat", Value = "2" });
AnimalList.Add(new SelectListItem { Text = "Mouse", Value = "3" });
this.ViewBag.Animals = new SelectList(AnimalList, "Value", "Text", "3");

在视图中

@Html.DropDownList("myDropDown", ViewBag.Animals as SelectList)

答案 1 :(得分:0)

没有模特,你不能使用DropDownListFor。看看它的重载:每个人都从一个模型属性开始。这就是帮助器用于设置模型绑定器的name属性的内容。

但是,您可以使用DropDownList。请注意,每个重载的第一个参数是string name。在这里你自己设置名称属性。

@Html.DropDownList("myDropDownList", AnimalList)

你没有在助手中设置一个项目,你可以在SelectListItem声明中这样做

AnimalList.Add( new SelectListItem 
                    { 
                      Text = "Mouse", 
                      Value = "3", 
                      Selected = true 
                    } 
              );