【发布时间】:2014-06-20 13:21:16
【问题描述】:
所以我对 ASP.NET 和 MVC 有点陌生。我有一个使用 Entity Framework 6 的 ASP.NET MVC5 应用程序。我从 SQL Server 数据库生成了我的模型,到目前为止,我只使用 vanilla index/create/details/edit 构造。
在我的模型中,各个字段都标记为“允许 Nulls”,而其他字段则没有。在创建新条目时,ModelState.IsValid 检查和@Html.ValidationMessageFor 消息可以很好地处理任何类型,例如保留为 null 的 int。
然而,在一次入学测试中,我收到了DbEntityValidationException。我使用 this question 中的 try/catch 来发现它是留空的字符串 (VARCHAR) 字段之一。
我假设这是因为字符串类允许空值,而 int 不允许(除非在模型中声明为 Nullable<type>),因此控制器/模型不会将其标记为无效。
处理此问题的最简单方法是什么?有没有办法装饰模型中的字符串属性以便它也被检查?或者我是否需要尝试保存、捕获异常和手动处理验证消息?
谢谢
【问题讨论】:
标签: asp.net entity-framework asp.net-mvc-5 .net-4.5