Проблема с обновлением C # IList - PullRequest
0 голосов
/ 27 сентября 2018

У меня проблема с использованием IList в C #.

У меня есть список внутри моего класса и метод, который должен его обновить.Однако, когда мне нужно отобразить список или обновить его снова, я получаю оригинальный список вместо обновленного.

 IList<Student> studentList = new List<Student>{
                        new Student() { StudentId = 1, StudentName = "John", Age = 18 } ,
                        new Student() { StudentId = 2, StudentName = "Steve",  Age = 21 } ,
                        new Student() { StudentId = 3, StudentName = "Bill",  Age = 25 } ,
                        new Student() { StudentId = 4, StudentName = "Ram" , Age = 20 } ,
                        new Student() { StudentId = 5, StudentName = "Ron" , Age = 31 } ,
                        new Student() { StudentId = 6, StudentName = "Chris" , Age = 17 } ,
                        new Student() { StudentId = 7, StudentName = "Rob" , Age = 19 }
                    };

    // GET: Student
    public ActionResult Index()
    {
        return View(studentList);
    }
[HttpPost]
public ActionResult Edit(Student std)
{
    var name = std.StudentName;
    var age = std.Age;
    var id = std.StudentId;

    Student stud = new Student();
    stud.Age = age;
    stud.StudentId = id;
    stud.StudentName = name;

    studentList.RemoveAt(id-1);
    Debug.WriteLine(id);

    return RedirectToAction("Index");
}

Метод корректно регистрирует изменения после завершения обновления.Я попытался отредактировать элемент вместо его удаления, но безрезультатно.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 27 сентября 2018

Вместо перенаправления пользователя в конце вашего метода редактирования, верните представление с обновленным списком студентов.Например:

Вместо:

return RedirectToAction("Index");

Использование:

return View("Index", studentList); 

(где «Index» - это название представления, которое вы хотите отобразить.)

Вызов RedirectToAction перезагружает класс и повторно инициализирует studentList, поэтому вместо отображения обновленного списка будет показан оригинал.

...