FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 4662|回复: 3

【已确认】表单提交后台模型二级属性验证问题

[复制链接]
发表于 2019-6-30 15:23:09 | 显示全部楼层 |阅读模式
版本:FineUIMvc 5.5.0、FineUICore 5.5.0

问题描述:如果一个模型存在二级属性类,这个二级属性类中假设有两个使用 [Required] 标识的属性 A 和 B,其中只有属性 A 在页面显示,属性 B 不在页面显示(有时业务需要),在提交表单时使用 ModelState.IsValid 验证模型不合法,其原因是同时验证了这个模型的二级属性,也就是 A 和 B 都要验证,但是 B 没有显示到页面上,这就造成验证不合法。而 FineUIMvc 5.3.0 只验证当前模型的一级属性, 从 5.4.0之后就会验证所有的下级模型,这就造成表单处理比较麻烦,不可能把所有的下级必填属性都放到页面上。

代码已重现

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2019-7-2 11:11:12 | 显示全部楼层
我专门写了一篇文章,来分析这个问题:
https://www.cnblogs.com/sanshi/p/11119340.html
 楼主| 发表于 2019-7-2 11:51:42 | 显示全部楼层
sanshi 发表于 2019-7-2 11:11
我专门写了一篇文章,来分析这个问题:
https://www.cnblogs.com/sanshi/p/11119340.html
...

使用绑定属性[Bind(Exclude = "StudentMajor")]确实可以对不需要验证的属性一一排除,假设模型中有多个类似的二级属性,我们在提交数据时也都排除了,如果后期模型结构发生变化,又增加或删除了二级属性,那还得在绑定属性中增加或排除他们,功能多了工作量可能比较大。能不能来个一劳永逸的办法,在FineUI中增加一个全局或者局部开关,提交数据时可以提交一级属性或全部。
发表于 2019-7-2 12:08:57 | 显示全部楼层
SNYG 发表于 2019-7-2 11:51
使用绑定属性确实可以对不需要验证的属性一一排除,假设模型中有多个类似的二级属性,我们在提交数据时也 ...

不行。你也看到了,模型绑定是ASP.NET MVC/Core做的事情,FineUI根本就没有代码触及这一块。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-3-29 07:35 , Processed in 0.046325 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表