Ошибка проверки сущности в ASP.NET MVC
Я получаю ошибку проверки сущности при нажатии на страницу AddNewPost. обычно ошибка проверки возникает при отправке формы, но когда я нажимаю на страницу, где на самом деле находится форма отправки, я получаю ошибку проверки сущности. Когда я отлаживаю код, чтобы проверить, какие объекты базы данных создают проблемы. я видел, что требуются три сущности. но эти сущности должны были вызвать такую ошибку, когда я отправляю форму. каковы возможные решения, когда эти ошибки возникают при переходе на страницу формы.
Что я уже пробовал:
Ошибка, которую я получаю
Server Error in '/' Application. Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
Визуальная Студия Изображения Отладки
http://imgur.com/a/CbpEM
Контроллеры индексируют и добавляют пост
public ActionResult Index() { AdminObserver observer1 = new AdminObserver(); ActivityObserver observer2 = new ActivityObserver(); // ForumNotifier notifier = new ForumNotifier(); ForumNotfier notifier = new ForumNotfier(); notifier.Subscribe(observer1); notifier.Subscribe(observer2); return View(); //return View(); } public ActionResult AddPost(ForumPost post) { post.PostedOn = DateTime.Now; using (AppDbContext db = new AppDbContext()) { try { db.ForumPosts.Add(post); db.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("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) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } } ViewBag.Message = "Post submitted successfully!"; ForumNotfier notifier = new ForumNotfier(); notifier.Notify(post); return View("Index", post); }
Forumpost в модели
namespace observer.Models { [Table("ForumPosts")] public class ForumPost { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [Required] [StringLength(20)] public string UserName { get; set; } [Required] [StringLength(100)] public string Title { get; set; } [Required] [StringLength(100)] public string Description { get; set; } [Required] public DateTime PostedOn { get; set; } }
Вид AddPost
@using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-horizontal"> <h4>ForumPost</h4> <hr /> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Title, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Title, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Description, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.PostedOn, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.PostedOn, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.PostedOn, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Create" class="btn btn-default" /> </div> </div> </div> }