【发布时间】:2014-08-14 19:59:16
【问题描述】:
我正在尝试学习 MVC3,在我正在做的一项练习中,我定义了一个 DropDownListFor,如下所示:
@Html.DropDownListFor(m => m.Animal,
new System.Web.Mvc.SelectList(Model.AvailableValues, "Value",
"Text", Model.Animal))
其中 Model.Animal 的类型为 AnimalEnum:
public enum AnimalEnum
{
Cat,
Dog,
Fox,
Aardvark
}
而AvailableValues定义为:
var model = definition.Settings.GetModel<AnimalTypePart>();
model.AvailableValues = Enum.GetValues(typeof (AnimalEnum))
.Cast<int>()
.Select(i =>
new {
Text = Enum.GetName(typeof (AnimalEnum), i),
Value = i
});
我的问题是我能够正确保存我在下拉列表中选择的值,但是当我再次显示下拉列表时,它不会显示保存的值,而是始终显示列表的第一个(猫)。我还尝试将“(int)Model.Animal”作为 DropDownListFor 的最后一个参数,它对应于每个选项关联的整数 Value,但它也不起作用。调试 我可以确认调用助手时 DropDownListFor 的所有参数都具有正确的值。 当我可视化页面时,您能帮我让下拉列表自动显示保存的值吗?
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-3 html.dropdownlistfor