When a user clicks a button next to a certain element on my page I want the elements isAccepted value to change. When a button is pressed the db.SaveChanges() command throws an exception of type EntityValidationErrors.
Controller
namespace WebApplication6.Controllers
{
public class AppController : Controller
{
[HttpGet]
public ActionResult Accept(int? id)
{
EmailFormModel itemToUpdate = db.ProjectInfo.Find(id);
itemToUpdate.isAccepted = true; //only value I want to change
db.SaveChanges();
return RedirectToAction("MainDbView");
}
}
}
Model
public class EmailFormModel
{
public EmailFormModel()
{
isAccepted = false;
Ressurs = new List<RessursBehov>() { new RessursBehov() };
}
public int id { get; set; }
public bool isAccepted { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Prosjektnummer"), RegularExpression(@"^([pP])\d*$", ErrorMessage = "Prosjektnummer er på formen: p1234 ")]
public string Prosjektnummer { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Prosjektnavn")]
public string Prosjektnavn { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Prosjekttype")]
public string Prosjekttype { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Prosjektleder")]
public string Prosjektleder { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Skjema utfylt av")]
public string Prosjektregistrerer { get; set; }
[Required]
public virtual List<RessursBehov> Ressurs { get; set; }
}
public class RessursBehov
{
public int id { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Ressurstype")]
public string Ressurstype { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Navn på ressurs")]
public string Navn_På_Ressurs { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Ukenummer"), RegularExpression(@"^([1-9]|[1-4][0-9]|5[0-2])$", ErrorMessage = "Ugyldig verdi")]
public int? Ukenummer { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Antall timer"), RegularExpression(@"^([1-9]|[1-9][0-9])$", ErrorMessage = "Ugyldig verdi")]
public int? Antall_Timer { get; set; }
[Required(ErrorMessage = "påkrevet"), Display(Name = "Antall uker"), RegularExpression(@"^([1-9]|[1-9][0-9])$", ErrorMessage = "Ugyldig verdi")]
public int? Antall_Uker { get; set; }
[Required]
public virtual EmailFormModel realemailformmodel { get; set; }
}
Context class
public class TalkToDb : DbContext
{
public DbSet<EmailFormModel> ProjectInfo { get; set; }
public DbSet<RessursBehov> ProjectExtra { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//one-to-many
modelBuilder.Entity<RessursBehov>()
.HasRequired<EmailFormModel>(s => s.realemailformmodel)
.WithMany(s => s.Ressurs);
}
}
UPDATE
This is the error i get:
Exception thrown: 'System.Data.Entity.Validation.DbEntityValidationException' in EntityFramework.dll iisexpress.exe Information: 0 : Property: Ressurstype Error: påkrevet
iisexpress.exe Information: 0 : Property: Navn_På_Ressurs Error: påkrevet
iisexpress.exe Information: 0 : Property: Ukenummer Error: påkrevet
iisexpress.exe Information: 0 : Property: Antall_Timer Error: påkrevet
iisexpress.exe Information: 0 : Property: Antall_Uker Error: påkrevet