たくさんのチェックボックスと他のタイプのコントロールも含むフォームがあります。選択した各チェックボックスの名前を取得する必要があります。
これを行う最善の方法は何ですか?おそらくlinqクエリでそれを行うことはできますか?
したがって、疑似コードでは、次のようなことをしようとしています:
var names = formCollection
.Where(c => c is Checkbox && c.Checked)
.Select(c => c.Name);
更新非表示フィールドもレンダリングされるため、MVC がチェックボックスを送信する方法は、通常のフォームの動作とは異なるようです。ここで詳細を見つけました: ASP.NET MVC フォームでチェックボックスを処理する方法?
とにかく、そのスレッドと以下の BuildStarted からの回答の助けを借りて、私はそれを機能させました。次のコードはそのトリックを行いました。
var additionalItems = form.AllKeys
.Where(k => form[k].Contains("true") && k.StartsWith("addItem"))
.Select(k => k.Substring(7));