私のmvc4アプリケーションでは、このように登録するページにドロップダウンリストを設定しました
AccountModel.cs の HttpGet Register メソッドで、このコードでデータを初期化します
public ActionResult Register()
{
MyModel mm=new MyModel();
mm.mydropdown=new []
{
new SelectListItem{Value="value", Text="text"}
////...
};
}
このページがロードされたときにのみ、そのコードが実行されます。しかし、メソッドで書き直す必要がないように、コンパイルする必要があるコードスニペットを挿入mydropdown
し、アプリケーションで常に初期化できる場所はありますか?[HttpPost]
【追記】mymodel
クラス
はこちら
public class Register
{
[Required(ErrorMessage="Option is required")]
public string option;
public IEnumerable<SelectListItem> Options;
}
私の場合、option
このようにcshtmlで使用します
@Html.DropDownListFor(m=>m.option, Model.Options,"Select an item")
HttpPost
Register メソッドで、オプションを再初期化する必要があります。そうしないと、エラー " "Option is of type string but it must be IEnumerable<SelectListItem> instead
が発生します