妖精の日常的な状況では、ユーザーがASP.NET MVCアプリケーションの列挙型から値を選択できるようにする必要があります。私はMVCバージョン5.2を使用しているので、これを単純に行うことができます:EnumDropDownList値が表示に渡されても値を選択しない
// Model
public MyEnum EnumVal { get; set; }
// Controller
return View(new MyModel{EnumVal = MyEnum.SomeVal});
// View
@Html.EnumDropDownListFor(model => model.EnumVal)
そして、それはすべて魔法のように動作します。私は十分な時間をそれを当然のために取ってきました。
しかし、私が渡している値がドロップダウンの現在の値として選択されていないことに気づいただけです。
モデルの内容を吐き出して、値が正しく渡されていることを確認できますが、ドロップダウンには最初の値が選択されています。
その他の回答(たとえばhereとhere)は、私が知っていると思ったことを確認しているようです。つまり、私が渡した値を選択するためにドロップダウンを得るために何か追加する必要はありません。
私は脳のおならですか?なぜこれは機能しないのですか?
更新
ここでは、コントローラのメソッドのためのより完全なリストです:
public ActionResult Create(string enumVal)
{
var valueToPass = AccountsDestination.QbDUk;
Enum.TryParse(enumVal, out valueToPass);
return View(new QuickBooksMappingViewModel(){EnumVal = valueToPass});
}
あなたが表示したコードは正常に動作します。問題を引き起こしている可能性のあるJavaScriptがありますか?私は、コントローラメソッドがGETで、POSTの値を変更しようとしていないか、GETメソッドの 'enum'のパラメータがないと仮定します。 –
@StephenMueckeあなたはそれを釘付けにしました!それはget paramsの1つの名前との衝突でした。パラメータの名前を変更するのはそれだけでした。 (これを解答にアップグレードして、私はそれを受け入れます) –
あなたは関連するコードを表示していません - メソッドの署名:) –