加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如果ModelState中不存在某个键,我该如何添加它?

发布时间:2020-12-16 07:08:22 所属栏目:asp.Net 来源:网络整理
导读:我试图在我的控制器中创建一个解决方法来处理ASP.NET MVC v1中的错误.如果您发布未选择任何内容的列表框( http://forums.asp.net/p/1384796/2940954.aspx),则会发生此错误. 快速说明: 我有一个报告,接受来自文本框的两个日期和一个ListBox中的一个或多个选
我试图在我的控制器中创建一个解决方法来处理ASP.NET MVC v1中的错误.如果您发布未选择任何内容的列表框( http://forums.asp.net/p/1384796/2940954.aspx),则会发生此错误.

快速说明:
我有一个报告,接受来自文本框的两个日期和一个ListBox中的一个或多个选择.除了验证列表框没有选中任何内容之外,一切都有效.

当表单发布并到达我的控制器时,该模型包含所有必需的项目.但是,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:不允许变换从字典派生的密钥集合.

有任何想法吗?

提前致谢!

解决方法

直接使用ModelState.Add方法:

ModelState.Add("TurnTimeReportModel.Criteria.SelectedQueuesList",new ModelState{ AttemptedValue = new List<string>() } )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读