首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个或多个实体的验证失败。模型中添加的验证

一个或多个实体的验证失败。模型中添加的验证
EN

Stack Overflow用户
提问于 2018-02-25 15:23:05
回答 1查看 105关注 0票数 0

当我在Register.cshtml视图页面中的表单中按下“注册”按钮时,就会出现此验证异常。

System.Data.Entity.Validation.DbEntityValidationException:‘对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。

代码语言:javascript
复制
@*Registration form*@
     <section class="registersection">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                        <form action="~/Users/SaveRegister" method="post">
                            @using (Html.BeginForm())
                            {
                                @Html.ValidationSummary(true)

                                @Html.AntiForgeryToken()
                                <div class="editor-label">
                                    @Html.LabelFor(model => model.user_name)
                                </div>
                                <div class="editor-field">
                                    @Html.EditorFor(model => model.user_name)
                                    @Html.ValidationMessageFor(model => model.user_name)
                                </div>

                                <div class="editor-label">
                                    @Html.LabelFor(model => model.user_passport)
                                </div>
                                <div class="editor-field">
                                    @Html.EditorFor(model => model.user_passport)
                                    @Html.ValidationMessageFor(model => model.user_passport)
                                </div>
                                <p>
                                    <input type="submit" value="Register" />
                                </p>
                            }
                        </form>

                    </div>
                </div>
            </div>
      </section>

我的用户模型

代码语言:javascript
复制
@*Program.cs@* Model

public class User
        {   
            public int userid { get; set; }

            [Display(Name ="Passenger Name")]
            [Required(ErrorMessage ="Your name is required")]
            public string user_name { get; set; }

            [Display(Name = "Passenger Father Name")]
            [Required(ErrorMessage = "Your Father name is required")]
            public string user_fname { get; set; }

            [Required]
            [Display(Name = "CNIC")]
            [RegularExpression(@"^[0-9+]{5}-[0-9+]{7}-[0-9]{1}$", ErrorMessage = "Entered CNIC format is not valid.")]
           public string usercnic { get; set; }

            [StringLength(8, MinimumLength = 7)]
            public string user_passport { get; set; }
            [StringLength(15, MinimumLength = 10)]
            public string user_bloodGp { get; set; }
            [StringLength(35, MinimumLength = 30)]
            public string user_nationality { get; set; }
            public string usertype { get; set; }
            public string status { get; set; }
            [Required]
            [Range(0,8)]
            public int mobilenumber { get; set; }
            public string gender { get; set; }

        }

    public class BloggingContext : DbContext
    {
        public DbSet<Plane> Planes { get; set; }
        public DbSet<User>  Users { get; set; }
    }

我在global.asax Database.SetInitializer(新的DropCreateDatabaseIfModelChanges())中添加了这一点;

代码语言:javascript
复制
protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
          Database.SetInitializer<AirlineappContext>(new DropCreateDatabaseIfModelChanges<AirlineappContext>());

        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-25 15:41:39

在代码中环绕一个try catch块,以捕获并记录DbEntityValidationException,这样您就可以获得有关错误的更多信息。

代码语言:javascript
复制
public void AppendValidationErrors(Exception e)
{
    DbEntityValidationException ex = e is DbEntityValidationException ?
        e as DbEntityValidationException : null ;

    if (ex == null) { log.Info(e); return; }

    foreach (var eve in ex.EntityValidationErrors)
    {
        log.Info(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
            eve.Entry.Entity.GetType().Name, eve.Entry.State));

        foreach (var ve in eve.ValidationErrors)
        {
            log.Info(string.Format("- Property: \"{0}\", Error: \"{1}\"",
                ve.PropertyName, ve.ErrorMessage));
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48975107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档