Roel Gielis
Roel Gielis

Reputation: 29

Why doesn't my passing of ID work with httpcontext.session?

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

Answers (1)

Berkay Yaylacı
Berkay Yaylacı

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

Related Questions