У меня есть объект DbSet db.Payscales
На моем сайте есть страница, где вы можете обновить шкалы выплат, и есть страница, где вы выбираете шкалы выплат из выпадающего меню.
Обновление шкал выплат работает отлично, и даже изменит значения в базе данных.Однако в раскрывающемся списке значения не обновляются.Он сохраняет последнее значение, «известное» при создании проекта.
Единственный способ исправить это - прекратить отладку и запустить сайт заново (по сути, перестроить) и запустить его снова.После этого значения правильно отображаются в раскрывающемся списке.
Я прошу прощения, если я недостаточно подробен, но это, скорее, более общий вопрос о сущностях, чем вопрос с самим кодом.
На всякий случай вот код для выпадающего меню:
DropDownValues.cs
public static List<SelectListItem> GetPayScaleList()
{
List<SelectListItem> ls = new List<SelectListItem>();
ls.Add(new SelectListItem() { Text = "", Value = "" });
foreach (var temp in db.PayScales)
{
ls.Add(new SelectListItem() { Text = temp.Salary + "|" + temp.BaseGross, Value = temp.Salary.ToString() });
}
return ls;
}
и код самого фактического выпадающего меню:
@Html.DropDownListFor(modelItem => modelItem.teacher.SalaryCode , TeachersProj.Models.DropDropValues.GetPayScaleList())
Редактировать:
Так как запрошено, вот и метод обновления!
PayScalesController.cs
//
// POST: /PayScales/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(PayScale payscale)
{
if (ModelState.IsValid)
{
db.Entry(payscale).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(payscale);
}