ASP.NET MVC3 DropDownListFor Enum

时间:2011-06-24 10:07:12

标签: asp.net asp.net-mvc-3

嗨,我对MVC3很新,我正在尝试做一些我认为必须相当普遍的事情,但是不能完全接受它。

我有一个模型,我希望将枚举DayOfWeek的值存储在:

public class Booking
{
    public int ID { get; set; }
    public int Day { get; set; }
    ....
}

我已经把它作为一个存储在数据库中的int。

我想在View中以DropDownList编辑:

    <div class="editor-field">
        @Html.DropDownListFor(model => model.Booking.Day, new SelectList(Enum.GetValues(typeof(DayOfWeek))))
        @Html.ValidationMessageFor(model => model.Booking.Day)
    </div>

但是我收到错误:“字段日必须是数字”。

我知道我错过了一些东西,可能有些简单,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

将SelectList属性添加到viewmodel并按@ Brandon的回答here填充。

然后您将代码更改为:

@Html.DropDownListFor(model => model.Booking.Day, Model.SelectListProperty)

(其中SelectListProperty是您的视图模型上的属性名称)

答案 1 :(得分:0)

您还可以使用DayOfWeek更改模型类:

public class Booking
{
    public int ID { get; set; }
    public DayOfWeek Day { get; set; }
}