对于具有选定值的静态列表,正确的 DropDownListfor HTML 帮助程序语法是什么?



有人能帮我正确的语法吗?

不知道如何编写DropDownListFor HTML帮助器。我该如何根据Value属性3选择"鼠标"呢?我没有使用模型,只是试图在razor中快速列出一个列表。

感谢
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(? , ?, ?);

没有模型不能使用@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)

没有模型就不能使用DropDownListFor。看看它的重载:每个人都从一个model属性开始。这就是帮助器用来为模型绑定器设置name属性的方法。

但是,您可以使用DropDownList。注意,它每次重载的第一个参数都是string name。这里您可以自己设置name属性。

@Html.DropDownList("myDropDownList", AnimalList)

你不需要在helper中设置一个项目为selected,你需要在SelectListItem声明中这样做

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

最新更新