2

我有一个 DropDownList,其中包含在呈现视图时正确的项目和值,但选定的值未保存在指定的实体字段 Garage 中。目前在创建或编辑帖子方法中保存和返回的值都是 0(无)。我确定这很简单,但我无法弄清楚...在此先感谢!

模型类:

public enum GarageType { None = 0, One = 1, Two = 2, Three = 3, Four = 4 }

public int Garage { get; set; }

[NotMapped]
public GarageType GarageEnumValue
{
    get { return (GarageType)Garage; }
    set{ Garage = (int)value; }
}

控件的 Create 和 Edit 方法都如下所示:

var statuses = from Property.GarageType s in Enum.GetValues(typeof(Property.GarageType))
                       select new { ID = (int)s, Name = s.ToString() };
ViewBag.GarageId = new SelectList(statuses, "ID", "Name", statuses.FirstOrDefault().ID);

最后的视图:

@Html.DropDownList("GarageId", String.Empty)
4

1 回答 1

2

使用以下DropDownList方法重载

@Html.DropDownList("GarageEnumValue", (SelectList)ViewBag.GarageId, String.Empty)

如果您有强类型模型,请使用

@Html.DropDownListFor(m => m.GarageEnumValue, (SelectList)ViewBag.GarageId, String.Empty)

两种情况下的第一个参数都应该是您要绑定列表的属性。

于 2012-06-10T05:16:17.363 回答