public ActionResult Create(StaffSkill staffSkill) { if (ModelState.IsValid) { /*先保存员工技能固定的字段(为了生成主键Id)*/ db.StaffSkills.Add(staffSkill); db.SaveChanges(); /*查找员工技能预留字段(name)*/ var fieldList = (from p in db.ReserveFields where p.TableName == "StaffSkills" select p).ToList(); ViewBag.fieldList = fieldList; /*遍历,保存员工技能变化的字段*/ foreach (var temp in fieldList) { StaffSkillReserve ssr = new StaffSkillReserve(); ssr.Number=staffSkill.Id; ssr.FieldId=temp.Id; ssr.Value=Request[temp.FieldName]; /*占位,为了在Index中显示整齐的格式*/ if (ssr.Value == null) ssr.Value = " "; db.StaffSkillReserves.Add(ssr); db.SaveChanges(); } return RedirectToAction("Index"); } return View(staffSkill); }
public ActionResult Edit(StaffSkill staffSkill) { if (ModelState.IsValid) { StaffSkill ss = db.StaffSkills.Find(staffSkill.Id); /*查找员工技能预留字段(value)*/ var fieldValueList = (from ssr in db.StaffSkillReserves join rf in db.ReserveFields on ssr.FieldId equals rf.Id where ssr.Number == staffSkill.Id select new StaffSkillView { Id = ssr.Id, Description = rf.Description,Value=ssr.Value }).ToList(); //ViewBag.fieldValueList = fieldValueList; /*给预留字段赋值*/ foreach (var temp in fieldValueList) { StaffSkillReserve ssr = db.StaffSkillReserves.Find(temp.Id); ssr.Value = Request[temp.Description]; db.SaveChanges(); } ss.StaffNumber = staffSkill.StaffNumber; ss.StaffName = staffSkill.StaffName; ss.SkillRemark = staffSkill.SkillRemark; ss.SkillNumber = staffSkill.SkillNumber; ss.SkillName = staffSkill.SkillName; ss.SkillGrade = staffSkill.SkillGrade; ss.BillType = staffSkill.BillType; ss.BillNumber = staffSkill.BillNumber; db.SaveChanges(); return RedirectToAction("Index"); } return View(staffSkill); }