У меня есть представление для добавления очень простые объекты:ModelState.IsValid = верно для не действительной модели
@Html.ValidationSummary(true)
@using (Html.BeginForm())
{
<div class="editor-label">
@Html.LabelFor(tag => tag.Name)
</div>
<div class="editor-field">
@Html.EditorFor(tag => tag.Name)
@Html.ValidationMessageFor(tag => tag.Name)
</div>
<input type="submit" value="Insert" class="submit_btn" />
}
Я сделал контроллер так:
if (ModelState.IsValid)
{
...
context.Tags.Add(Tag);
context.SaveChanges();
return RedirectToAction("Index");
}
return View(Tag);
Модель генерируется из схемы базы данных (как часть edmx). Свойству nullable свойства имени поля присваивается значение false.
В некотором смысле, для пустого ввода «имя» свойство ModelState.IsValid является истинным, и оно пытается его сохранить (при SaveChanges() он выходит из строя с ошибкой проверки). Зачем?
+1 не использовать объекты вашей базы данных в вашем представлении –