Reputation: 29
I am trying to pass an ID from one view to another through my controller, but somehow i keep getting the error it cant convert an 'int' to 'Namespace.Modal.name'?
this is the code from my E-mail Model:
public int emailID { get; set; }
[Display(Name = "Email address")]
[Required(ErrorMessage = "The email address is required")]
[DataType(DataType.EmailAddress)]
[EmailAddress]
public string emailadres { get; set; }
public string omschrijving { get; set; }
public bool verwijderd { get; set; }
public virtual Vrijwilligers vrijwilligerID { get; set; }
And here's the code from my Controller:
public ActionResult Create([Bind(Include = "emailID,emailadres,omschrijving,verwijderd,vrijwilligerID")] Email email)
{
if (ModelState.IsValid)
{
int id = int.Parse(HttpContext.Session["vrijwilligersID"].ToString());
email.vrijwilligerID = id;
email.verwijderd = false;
db.Emails.Add(email);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(email);// vrijwilligers details
}
The error comes from this specific part:
int id = int.Parse(HttpContext.Session["vrijwilligersID"].ToString());
email.vrijwilligerID = id;
While debugging i found out that the ID is being passed but not correctly.
Upvotes: 1
Views: 110
Reputation: 4513
As @Equalsk pointed that vrijwilligerID
is not Int
, it is an object
, you need to get item from Vrijwilligers
with that Id, so;
email.vrijwilligerID = db.Vrijwilligers.FirstOrDefault(x=> x.Id == id);
Hope helps,
Upvotes: 1