I have a register form that when a user registers, his/her information gets saved to the database. With the code I have I am getting this
An exception of type 'System.Data.Entity.Validation.DbEntityValidationException' occurred in login.dll but was not handled in user code
Additional information: Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
error at the last line. When I checked what gets saved into the variables, everything is null except what is acquired as input from the form.
Ex. userType = null
, IPAddress = null
, CreatedDate = 1/1/0001 12:00:00 AM
,
but username, email, etc. have the correct values from the form.
public ActionResult Register(Models.User user)
{
try
{
if (ModelState.IsValid)
{
using (var db = new login.Models.ShareNotesEntities())
{
var crypto = new SimpleCrypto.PBKDF2();
var encrypPass = crypto.Compute(user.Password);
var newUser = db.Users.Create();
newUser.Username = user.Username;
newUser.Email = user.Email;
newUser.Password = encrypPass;
newUser.PasswordSalt = crypto.Salt;
newUser.Grade = user.Grade;
newUser.UserType = "User";
newUser.CreatedDate = DateTime.Now;
newUser.IsActive = true;
newUser.IPAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ??Request.ServerVariables["REMOTE_ADDR"];
db.Users.Add(newUser);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "sdfasdf");
}
}
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;
}
return View();
} -----> ERROR HERE