Contact US

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

using foreach to save data not save courses correctly

using foreach to save data not save courses correctly

using foreach to save data not save courses correctly


save name in employee table and save all courses

in employee courses table when click submit button in edit [HTTPPOST]

Problem summary

submit button save changes only and delete data exist before

Problem details

when click submit button in edit post .courses will save

what i added or selected courses before click submit it will save

but courses that employee have before will delete


1- i add employee name MEDO have course c++

2-in edit view it show c++

3-if i add python in edit view then click submit it must have two courses

c++ and python

4- it show to me python only when open edit for this employee again

it save courses selected but courses exist before deleted

Image for problem

image found below show all details

SAVE all courses in employeecourse table


CODE --> c#

public class EditEmployeeVm
public int Id { set; get; }
public string Name { get; set; }
public List<SelectListItem> Courses { get; set; }
public int[] CourseIds { set; get; }
public List<CourseVm> ExistingCourses { set; get; }

public class CourseVm
public int Id { set; get; }
public string Name { set; get; }
in edit function get i pass data to edit view

public ActionResult Edit(int id)
var vm = new EditEmployeeVm { Id = id };
var emp = db.Employees.FirstOrDefault(f => f.Id == id);
vm.Name = emp.Name;
vm.ExistingCourses = db.EmployeeCourses
.Where(g => g.EmployeeId == id)
.Select(f => new CourseVm
Id = f.Id,
Name = f.Course.CourseName

vm.CourseIds = vm.ExistingCourses.Select(g => g.Id).ToArray();
vm.Courses = db.Courses.Select(f => new SelectListItem
Value = f.Id.ToString(),
Text = f.CourseName

return View(vm);

public ActionResult Edit(EditEmployeeVm model)
var emp = db.Employees.FirstOrDefault(f => f.Id == model.Id);
foreach (EmployeeCourse eec in emp.EmployeeCourses.ToList())
var ec = db.EmployeeCourses.Find(eec.Id);

foreach (var couseid in model.CourseIds)
db.EmployeeCourses.Add(new EmployeeCourse { CourseId = couseid, EmployeeId = emp.Id });

return View();

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close