Salvataggio di molti più dati di relazione su MVC Crea vista

Ho alcuni problemi con una relazione Many-to-many che salva i risultati di una vista create.

Voglio creare una pagina per un nuovo profilo utente che abbia una lista di controllo che permetta loro di scegliere i corsi (da molti a molti rapporti). La mia vista prende i record dal database dei Courses e li mostra tutti con le caselle di controllo.

Una volta che l’utente pubblica i dati, voglio aggiornare il mio modello di profilo utente e anche i rapporti molti a molti. Questo è il codice che mi manca!

Sono nuovo a MVC e ho fatto ricerche ma non potevo ancora farlo.

Sto seguendo questo esempio: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-related-data-with-the-entity-framework-in-an- asp-net-mvc applicazione

Questo è il modello:

 public class UserProfile { public int Id { get; set; } public string Name { get; set; } public virtual ICollection usercourses { get; set; } } public class Courses { public int CourseID { get; set; } public string CourseDescripcion { get; set; } public virtual ICollection UserProfiles { get; set; } } public class UserProfileDBContext : DbContext { public DbSet UserProfiles { get; set; } public DbSet usrCourses{ get; set; } } 

Ho anche aggiunto un ViewModel:

 namespace Mysolution.ViewModels { public class AssignedCourseData { public int CourseID { get; set; } public string CourseDescription { get; set; } public bool Assigned { get; set; } } } 

Questo è il controller di create che popola le caselle di controllo dei corsi:

 public ActionResult Create() { PopulateCoursesData(); return View(); } private void PopulateCoursesData() { var CoursesData = db.usrCourses; var viewModel = new List(); foreach (var item in CoursesData) { viewModel.Add(new AssignedCourseData { CourseID = item.CourseID, CourseDescription = item.CourseDescription, Assigned = false }); } ViewBag.CoursePopulate = viewModel; } 

Questa è la vista

 @{ int cnt = 0; List courses = ViewBag.CoursePopulate; foreach (var course in courses) {  @course.CourseDescription } } 

E questo è il controllore che riceve i dati (e dove voglio salvarlo). Ottiene come parametro string[] selectedCourse per le caselle di controllo:

 [HttpPost] public ActionResult Create(UserProfile userprofile, string[] selectedCourse) { if (ModelState.IsValid) { db.UserProfiles.Add(userprofile); //TO DO: Save data from many to many (this is what I can't do!) db.SaveChanges(); } return View(userprofile); }