Я учусь на лету (с точки зрения настольного компьютера), так что простите, если это кажется глупым.
Это будет приложение типа CRUD, поэтому представьте, что у вас есть два контроллера для ввода данных:
SupervisorController
EmployeeController
Теперь, допустим, пользователь переходит к https://whatever/SupervisorController, и прежде чем что-то делать, мне нужно создать некоторые объекты, специфичные для экрана Supervisor (например, я создаю объект Access, который читает некоторые данные из источника, который сообщает мне, к чему у них есть доступ на этом конкретном экране Supervisor).
ОК, в моем методе Index я создаю этот объект и передаю его в мое представление. Но этот объект не будет сохраняться, когда, скажем, вызывается другой метод для этого контроллера или говорят, что щелкают по Обновить в браузере (конструктор для контроллера вызывается каждый раз).
И скажем, что пользователь заходит в браузер и сам вводит https://whatever/SupervisorController/AnotherMethod. Ну, я только создал этот объект в моем методе индекса. Так что теперь я должен построить тот же объект, опять же, там? И передать это этому мнению?
Я понял, что если кто-то обращается к какому-либо методу SupervisorController, если объекта там нет, я хочу создать некоторые специфические для «супервизора» объекты, чтобы они оставались доступными в моих «закрытых переменных-членах» До тех пор, пока я не закончу с SupervisorController. Это значит, что если они перейдут к EmployeeController, эти объекты теперь могут исчезнуть.
В EmployeeController я хочу что-то подобное. Сложные объекты, созданные специально для Employee CRUD, которые мне не понадобятся после завершения работы с Employees.
Я имею в виду, я действительно не хочу создавать эти объекты и сохранять их в сеансе в течение всего сеанса, поскольку они действительно нужны только для их конкретных контроллеров. Кроме того, сколько данных я действительно хочу хранить в памяти сеанса, прежде чем их станет слишком много!
Но если я не сохраню их где-то, мне придется заново создавать эти объекты для каждого действия / метода. Я не хочу создавать их в каждом методе определенного контроллера (я мог бы пойти в базу данных, чтобы получить определенную информацию). Например, я играю с Grid Control на моей странице Index, и когда вы достигаете этой страницы, происходит первоначальный вызов метода Index, а затем сама сетка вызывает этот метод Read, который у меня есть. Так что я буду создавать этот объект дважды !? По одному звонку https://whatever/SupervisorController?
Как люди справляются с тем, чего я пытаюсь достичь? Или мне нужно как-то взглянуть на это сейчас и применить к этим правилам?