ASP.NET MVC v1 のバグを処理するコントローラーで回避策を作成しようとしています。このバグは、何も選択されていないリストボックスを投稿すると発生します ( http://forums.asp.net/p/1384796/2940954.aspx )。
簡単な説明: テキスト ボックスからの 2 つの日付と、リスト ボックスからの 1 つ以上の選択を受け入れるレポートがあります。リストボックスが何も選択されていない場合、検証を除いてすべてが機能します。
フォームが投稿されてコントローラーに到達すると、モデルには必要なすべての項目が含まれます。ただし、ModelState にはリストボックスのキー/値が含まれていません。解決するために、私はこのようなことがうまくいくことを望んでいました:
if (!ModelState.ContainsKey("TurnTimeReportModel.Criteria.SelectedQueuesList") || ModelState["TurnTimeReportModel.Criteria.SelectedQueuesList"] == null) {
ModelState.Keys.Add("TurnTimeReportModel.Criteria.SelectedQueuesList");
ModelState["TurnTimeReportModel.Criteria.SelectedQueuesList"].Equals(new List<string>());
}
残念ながら、キーを追加しようとすると、次の例外がスローされます: System.NotSupportedException: ディクショナリから派生したキー コレクションの変更は許可されていません。
何か案は?
前もって感謝します!