ASP.NET MVC - 如何处理不允许空值的模型中的字符串?

时间:2014-06-20 13:21:17

标签: asp.net entity-framework asp.net-mvc-5 .net-4.5

所以我对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>)因此控制器/模型不会将其标记为无效。

最简单的处理方法是什么?有没有办法在模型中修饰字符串属性,以便检查它?或者我是否需要尝试保存,捕获异常并手动处理验证消息?

由于

1 个答案:

答案 0 :(得分:3)

可以使用Required-attribute装饰您的财产。当用户在此属性为空时发布表单时,Bac将显示错误消息。

public class TestClassModel
{
    [Required]
    public string RequiredString { get; set; }
}