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

model-view-controller – 具有多个ViewModel的MVC 3 ModelState

发布时间:2020-12-16 03:53:56 所属栏目:asp.Net 来源:网络整理
导读:我们假设我有一个由3个其他ViewModel组成的ViewModel.一个包含项目列表,另一个包含具有[Required]属性的类的实例,然后包含另一个其他项的列表. 如果用户从两个列表中的任何一个列表中选择一个项目,我不希望第二个对象上的[Required]属性导致ModelState无效,
我们假设我有一个由3个其他ViewModel组成的ViewModel.一个包含项目列表,另一个包含具有[Required]属性的类的实例,然后包含另一个其他项的列表.

如果用户从两个列表中的任何一个列表中选择一个项目,我不希望第二个对象上的[Required]属性导致ModelState无效,因为如果用户选择其中一个项目,它们将不会需要使用[Required]属性填写表单.

我怎么解决这个问题?

解决方法

一种选择是使用ModelState.Remove(“KeyName”)删除“违规”验证.我有完全相同的方案,并实现了以下内容:

var MyModel = _someService.GetModelById(id);
TryUpdateModel(MyModel);
ModelState.Remove("MyModel.OffendingField");
if (ModelState.IsValid)
{
    ...
}

尽管如此,确保在代码的其他区域不会产生连锁反应非常重要.

(编辑:李大同)

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

    推荐文章
      热点阅读