所以我对ASP.NET和MVC有点新意。我有一个ASP.NET MVC5应用程序,使用Entity Framework 6.我已经从SQL Server数据库生成了我的模型,到目前为止只使用了vanilla索引/创建/细节/编辑结构。
在我的模型中,各个字段标记为“允许空”,而其他字段则不标记。在创建新条目时,任何类型(例如,保留为null的int)都会通过ModelState.IsValid
检查和@Html.ValidationMessageFor
消息很好地处理。
然而,在一次参赛考试中,我收到了DbEntityValidationException
。我使用了this question中的try/catch
来确定它是字符串(VARCHAR
)字段之一留空。
我假设这是因为字符串类允许空值,而int则不允许(除非在模型中声明为Nullable<type>
)因此控制器/模型不会将其标记为无效。
最简单的处理方法是什么?有没有办法在模型中修饰字符串属性,以便检查它?或者我是否需要尝试保存,捕获异常并手动处理验证消息?
由于
答案 0 :(得分:3)
可以使用Required-attribute装饰您的财产。当用户在此属性为空时发布表单时,Bac将显示错误消息。
public class TestClassModel
{
[Required]
public string RequiredString { get; set; }
}