2017-04-03 50 views
1

我想通過我的控制器從一個視圖傳遞給另一個ID,但不知何故,我不斷收到錯誤,它不能將'int'轉換爲'Namespace.Modal.name'?爲什麼我的身份證不能通過httpcontext.session工作?

這是從我的電子郵件型號代碼:

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; } 

下面是從我的控制器代碼:

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 
    } 

誤差來源於此特定部分:

int id = int.Parse(HttpContext.Session["vrijwilligersID"].ToString()); 
email.vrijwilligerID = id; 

調試時,我發現ID正在傳遞,但不正確。

+0

試試這個,'Convert.ToInt32(HttpContext.Current.Session [ 「vrijwilligersID」])' – Berkay

+0

我已經嘗試過了,它不工作,我仍然得到同樣的錯誤。 'email.vrijwilligersID' doens't accept int value's –

+0

那麼vrijwilligerID的類型是'Vrijwilligers'而不是'int',這裏的定義是什麼? – Equalsk

回答

1

由於@Equalsk指出的是vrijwilligerIDInt,它是一個object,你需要從Vrijwilligers得到項目與ID,因此,

email.vrijwilligerID = db.Vrijwilligers.FirstOrDefault(x=> x.Id == id); 

希望幫助,

相關問題