2011-06-24 10 views
1

こんにちは、私はかなりMVC3を新しくしています。私はかなり一般的でなければならないと思っていますが、かなり手に入れられないと思っています。私はそれのデータベースに格納するint型作ったASP.NET MVC3 DropDownListFor Enum

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

:私は私が望むのモデルを持っている

はで列挙のDayOfWeekの値を格納します。

私は、DropDownListコントロールとして表示して編集したい:

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

私はエラーを取得するしかし:「フィールドの日は番号でなければなりません」。

私は何かが不足していることは知っています。

+0

コードのその時点でのmode.Booking.Dayの値は何ですか?それは数字ですか?それともヌルですか?または、他の何か? –

+0

私が知る限り、列挙型の文字列です。つまり:月曜日 –

+0

model.Booking.Dayはintではありませんか? "public int Day {get; set;}" –

答えて

3

SelectListプロパティをviewmodelに追加して、@ Brandonの回答hereとして設定します。

次にあなたがあなたのコードを変更します:

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

SelectListPropertyがあなたのviewmodel上のあなたの財産の名前です)

0

あなたはまたのDayOfWeekを使用して、あなたのモデルクラスを変更することができます。

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