Сохранение данных отношений «многие ко многим» в MVC Create view

У меня есть некоторые проблемы с отношением «многие ко многим», сохраняющим результаты представления создания.

Я хочу создать страницу для нового профиля пользователя с контрольным списком, который позволяет им выбирать курсы (отношения многие ко многим). Мой взгляд берет записи изCourses базы данных и показывает их все с флажками.

Как только пользователь публикует данные, я хочу обновить своиuserprofile модель, а такжеcourses отношения многие ко многим. Это код, который я пропустил!

Я новичок в MVC и я занимаюсь исследованиями, но пока не могу.

Я следую этому примеру: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-related-data-with-the-entity-framework-in-an-asp-net-mvc- приложение

Это модель:

public class UserProfile
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Courses>  usercourses { get; set; }
}

public class Courses
{
    public int CourseID { get; set; }
    public string CourseDescripcion { get; set; }
    public virtual ICollection<UserProfile> UserProfiles { get; set; }
}

public class UserProfileDBContext : DbContext
{
    public DbSet<UserProfile> UserProfiles { get; set; }
    public DbSet<Courses> usrCourses{ get; set; }
}

Я также добавил ViewModel:

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

Этоcreate Контроллер, который заполняет флажки курсов:

public ActionResult Create()
{
    PopulateCoursesData();
    return View();
}

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

Это мнение

@{
    int cnt = 0;
    List<MySolution.ViewModels.AssignedCourseData> courses = ViewBag.CoursePopulate;

    foreach (var course in courses)
    {
        <input type="checkbox" name="selectedCourse" value="@course.CourseID" /> 
        @course.CourseDescription
    }
}

И это тот контроллер, который получает данные (и где я хочу их сохранить). Получается как параметрstring[] selectedCourse для флажков:

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

Ответы на вопрос(1)

Ваш ответ на вопрос