You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中NotMapped字段值为null时Setter方法未触发问题问询

根本原因

  • Kendo控件提交逻辑限制:当控件内所有条目被清空时,默认不会在POST请求中携带ExecuteTimes对应的参数。ASP.NET MVC/Core的模型绑定器找不到对应提交值时,会直接跳过该属性的赋值流程,自然不会触发Setter方法。
  • 集合类型的默认绑定规则:即便请求中携带了空的ExecuteTimes参数,模型绑定器对集合类型的空输入默认判定为「无有效赋值需求」,不会主动给集合属性赋值null,只会保留属性的原有默认值,因此也不会调用Setter。
  • 你将字段改为IList<int?>未解决问题的原因是,该改动仅调整了集合内部元素的可空性,不会改变模型绑定器对集合类型整体为空时的赋值逻辑,因此不生效。

验证方法

你可以在控制器的Action入口处,手动给接收到的模型实例的ExecuteTimes属性赋值null,此时Setter的断点必然会命中,可排除属性本身的Setter语法问题。

可选修复方案(若需要清空时触发逻辑)

可以在页面添加一个与ExecuteTimes绑定的隐藏字段,用JS监听Kendo控件的内容变化,当控件内容为空时主动给隐藏字段赋值空数组标识,确保请求中始终携带ExecuteTimes的参数,即可触发模型绑定的赋值逻辑。


内容的提问来源于stack exchange,提问作者John Lord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 08:21:03