我有一个模型,其中属性 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 页面,可空引用类型已禁用
非常感谢
edit - 验证时的无效对象
在您的代码中,如果您输入或选择是否尝试将值设置为零
这可能会导致数据库出现约束问题
解决办法是设置 value=""
为什么这样工作并且根本不设置值会导致验证错误,这是因为验证检查是针对原始值运行的,在我们的例子中,原始值将是字符串“null”而不是真正的 null
所以就这样做
<select asp-for="CustomerId" asp-items="@ViewBag.CustomersList" >
<option value="">please select...</option>
</select>
这将解决错误绑定的问题
希望 MS 团队能够处理下一个 .net core 版本
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)