Я шел назад и вперед на 2 опциях:
public class BusinessObjectCollection : List<BusinessObject> {}
или методы, которые просто делают следующее:
public IEnumerable<BusinessObject> GetBusinessObjects();
преимущества первого подхода - то, что можно изменить базовое хранилище данных, не имея необходимость смешивать с сигнатурами методов. К сожалению, если Вы наследовались типу набора, который удаляет метод из предыдущей реализации, тогда необходимо будет справиться с теми ситуациями всюду по коду.
Это проблема браузера. При нажатии кнопки «Назад» браузер ведет себя по-разному - это поведение в основном зависит от настроек конфиденциальности пользователя. Кроме того, большинство браузеров автоматически сбрасывают форму при нажатии кнопки возврата для страниц, просматриваемых через HTTPS-соединение, независимо от их нормального поведения для HTTP-соединений. Кроме того, многие формы HTML, которые в значительной степени полагаются на AJAX, не восстанавливают должным образом - или последовательно - свое предыдущее состояние.
Изменить ----
Теперь, когда вы упомянули об использовании PHP и MySQL, предполагая, что вы также используете используя сеансы ... браузер не будет предварительно заполнять форму, когда вы нажимаете кнопку "Назад".
Вам необходимо создать прикрепленные формы , чтобы браузер сохранял данные формы при нажатии кнопки «Назад». Это довольно просто сделать, ознакомьтесь с учебными пособиями по ссылке поиска.