【发布时间】:2020-11-12 04:09:13
【问题描述】:
我有一个模型,其中 CompanyID 属性允许空值
public partial class ReportTemplateItem
{
[Key]
public int ReportTemplateItemID { get; set; }
[Required]
public int ReportTemplateID { get; set; }
public int? CompanyID { get; set; }
}
在 DBContext OnModelCreating 中,没有为 CompanyID 声明属性
但是在发布时 ModelState 是无效的。如果我删除 ModelState 验证,表单将按预期工作
接受空值似乎是模型验证的默认行为,我缺少什么?
带有 EF Core 3.0 的 Razor 页面,可空引用类型被禁用
非常感谢
【问题讨论】:
-
您的CompanyID字段不是[必填],所以它不应该是无效的ModelState的原因。检查您提交的 ReportTemplateID,它在发布时是否有任何价值。
-
@Imran
ReportTemplateID将永远满足Required如果我没记错的话,不管它是否通过。 -
我会说由于某种原因
"null"被传递给CompanyID不能变成有效的int? -
@Imran,我希望 CompanyID 被接受为 null,所以我省略了 [必填]
-
请添加您的表单代码。
标签: c# asp.net-core razor-pages ef-core-3.0 model-validation