asp.net mvc 4 - Razor, MVC4, @html.dropdownlistfor problems -


i'm trying create drop down list populates database. have:

public class employee     {         [key]         public int id { get; set; }         [required]         public string firstname { get; set; }         [required]         public string lastname { get; set; }         [required]         public string jobtitle { get; set; }     }      public class project     {         [key]         public int id { get; set; }         [required]         public string projectname { get; set; }         [required]         public string companyname { get; set; }     }      public class projecthour     {         [key]         public int id { get; set; }         [required]         public decimal hours { get; set; }         [required]         public datetime date { get; set; }         public virtual icollection<employee> employeeid { get; set; }         public virtual icollection<project> projectid { get; set; }     } 

what want create form create new project hours associated project , employee. i'm trying use dropdownlists display employees , projects on create form. obviously, i'm new @ this, have far is:

[httppost]      public actionresult createprojecthour(projecthour newprojecthour)      {              using (var db = new timesheetcontext())              {                  ienumerable<selectlistitem> emp = db.employees                   .select(c => new selectlistitem                   {                       value = c.id.tostring(),                       text = c.lastname                   });                  viewbag.employeeid = emp;                   db.projecthours.add(newprojecthour);                  db.savechanges();              }               return redirecttoaction("projecthourlist");          }      } 

and on form:

@model timesheetmvc.models.projecthour ... @html.dropdownlistfor(model => model.employeeid, (selectlist)viewbag.employeeid) 

which apparently horribly wrong. appreciated...!

don't use same name employeeid. need 2 things create dropdown list in asp.net mvc: scalar property hold selected value , collection property contain possible values. since using viewbag (which totally recommend against) following:

viewbag.employees = emp; 

and in view:

@html.dropdownlistfor(     model => model.employeeid,      (ienumerable<selectlistitem>)viewbag.employees ) 

but said not @ approach recommend. recommend using view models. define ienumerable<selectlistitem> property on view model:

public ienumerable<selectlistitem> employees { get; set; } 

and in controller populate view model property , make view typed view model.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -