Company モデルには、次のものがあります。
[Display(Name = "Offered Services")]
public string[] Services { get; set; }
私は標準的な足場コントローラーを持っています。
ここで、Razor ビューで、次のマークアップがブラウザー用に生成されるように値をモデルに自動バインドするチェックボックス ヘルパーを使用する必要があります。
<div class="editor-label">
Offered Services
</div>
<div class="editor-field">
<input type="checkbox" name="Services[]" id="services-safety" value="safety" />
<label for="services-safety">Safety</label>
<input type="checkbox" name="Services[]" id="services-healthy" value="healthy" />
<label for="services-healty">Healthy</label>
... <!-- more checkboxes in future -->
</div>
質問:
checked
選択した値が編集ビューのままになるようにモデルにバインドするヘルパーはありますか。追加の ViewModel とコントローラー コードを使用しなくても可能でしょうか?プレゼンターにアプリケーションの動作を変更させるのは良い考えですか? 誰かがクライアント側からチェックボックスの値を変更すると、Service 配列にガベージ データが含まれます。この場合、チェックボックスを処理してそのようなノイズを防ぐための最良の方法は何ですか:
- ポリモーフィックなサービス名の ViewModel
- 列挙型サービス {}
- Company モデルのサービスごとに個別のプロパティを作成する
class Service{}: すべてのサービスをプロパティとして含む:
A) 次に、モデルでサービス タイプのプロパティを作成します。
B) サービスをエンティティとして作成し、会社と関連付けます。