2017-05-29 122 views
0

我在ASP.NET MVC中创建了一些调查,当用户填充创建表单视图时,所有值都存储在一个对象中保存在会话中。 在调查结束时,我想通过一个操作将所有对象保存到数据库中。从会话中获取值并将其保存到数据库ASP.NET

Email mails = new Email(); 
mails = Session["Emails"]; 

db.Emails.Add(mails); 

它说:

不能Object类型隐式转换为Namespace.models.emails。

该错误发生在这条线:

mails = Session["Emails"]; 

回答

2

Seesions在ASP.Net,默认情况下,返回Object类型。您必须在分配时对其进行分型。

试试这个:

if (Session["Emails"] != null) 
{  
    Email mails = (Email)Session["Emails"]; //Assuming Session will contain one email 
    db.Emails.Add(mails); 
} 
+0

但你并不需要'=新的电子邮件()'为对象将被放弃,并在下一行更换。 –

+0

@HansKesting:我刚刚复制了OP的代码。但你是对的,我会更新代码。 – Saket

+0

谢谢@Saket,我现在可以保存对象,唯一的问题是它由于某种原因创建4条记录? '电子邮件=(电子邮件)会议[“电子邮件”]; Telefoon telefoon =(Telefoon)Session [“Telefoon”]; Adres adres =(Adres)Session [“Adres”]; db.Emails.Add(邮件); db.Telefoons.Add(telefoon); db.Adres.Add(adres); db.Vaardigheden.Add(vaardigheden); db.SaveChanges(); return RedirectToAction(“Index”,“Vrijwilligers”);' –

相关问题