我正在尝试在我的控制器中创建一个解决方法来处理 ASP.NET MVC v1 中的错误。如果您发布没有选择任何内容的列表框(http://forums.asp.net/p/1384796/2940954.aspx),则会出现该错误。
快速说明:我有一份报告,它接受来自文本框的两个日期和来自列表框的一个或多个选择。如果列表框没有选择任何内容,则除了验证之外一切正常。
当表单发布并到达我的控制器时,模型包含所有必要的项目。但是,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:不允许更改从字典派生的密钥集合。
有任何想法吗?
提前致谢!