EmployeeMVC3/Razor アプリケーションの「編集」ビューにバインドしているエンティティがあります。Employeeエンティティには のプロパティがありますOccupationTypeId。複数のルックアップ値を含むテーブルをOccupationTypeId指します。OccupationType自然な選択は、職業のリストを含むタグを@Html.DropDownListForレンダリングするために使用することです。<select>
OccupationTypeテーブル スキーマはかなり標準的です: Id, Name, Description, IsEnabled. OccupationTypes は無効にできるため、OccupationTypeIdドロップダウンで無効なオプションを引き続きレンダリングして、ユーザーが無効な場合にいつでも選択内容を確認できるようにしたいのですが、ユーザーは無効なオプションを選択できません。つまり、ユーザーは既存OccupationTypeIdのオプションを無効に変更することはできません。
オプションを使用してタグを作成し、無効なオプションに属性を追加するだけの@Html拡張メソッドを作成することを考えました。それはまっすぐだと思います...<select>disabled
ただし、選択したオプションを無効にすると、コントローラーメソッドにポストバックされないようです。つまり、Employee.OccupationTypeId編集に投稿すると null になります。
この動作を変更する方法はありますか、またはこれは MVC 3 に組み込まれていますか? 隠しフィールドを使用することを考えましたが、OccupationTypeId が必要で、検証が有効になっている場合はどうなりますか?
他の誰かがこれに直面しましたか?
ありがとう