私の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")
HttpPostRegister メソッドで、オプションを再初期化する必要があります。そうしないと、エラー " "Option is of type string but it must be IEnumerable<SelectListItem> insteadが発生します