Класс данных в ASP.Net - PullRequest
       14

Класс данных в ASP.Net

0 голосов
/ 09 января 2010

Я - программист winforms VB.net, пытающийся создать приложение ASP.Net. Я использую классы данных (объекты) посредством отражения в большинстве моих проектов VB и пытался адаптировать их к ASP.net, используя код VB позади. У меня есть веб-страница, которая служит страницей добавления / редактирования для контактной информации. Я устанавливаю свой класс, который получает контактные данные из базы данных, затем у меня есть процесс, который перебирает элементы управления в форме и сопоставляется со свойством в классе данных. Я могу отображать данные без проблем. Когда я редактирую данные и нажимаю кнопку отправки, мой код вызывает a, а затем снова просматривает элементы управления в форме и сопоставляет элемент управления со свойством класса данных, чтобы обновить свойство класса. Однако мой класс данных больше недействителен. Я знаю, что веб-программирование отличается от winforms, но я не могу с этим справиться. Это неправильный путь? Мой класс данных доступен только на стороне сервера? Должен ли я просто восстановить исходный класс, а затем перебрать свойства и изменить то, что изменил пользователь, а затем вызвать метод обновления (см. Избыточность)? Как я могу получить класс данных в объект сеанса (я делал попытку в прошлом, но был в сжатые сроки и должен был отказаться от него, может быть, мне нужно вернуться к нему?)?

Спасибо

Ответы [ 3 ]

2 голосов
/ 10 января 2010

Если вы решили сохранить некоторые свои данные в сеансе, вы обязаны прочитать этот пост . Ваш код будет намного чище и проще в обслуживании.

1 голос
/ 09 января 2010

Да, вам нужно перезагрузить класс данных из базы данных как один из вариантов или использовать альтернативный подход. Причина в том, что сеть не имеет состояния, поэтому все локальные переменные уничтожаются, а затем происходит процесс выгрузки страницы на стороне сервера. Это означает, что между запросами вам нужно что-то для хранения ваших данных.

Вы можете читать / писать объект через коллекцию Session, например:

Session ["A"] = myobj; myobj = (ObjType) Session ["A"];

И так сеанс хранит объект для конкретного пользователя. В качестве альтернативы, кэш хранит данные уровня приложения, поэтому один экземпляр объекта доступен для всех пользователей (где сеанс уникален для каждого пользователя). Вы можете сделать кеш уникальным для пользователя, добавив идентификатор пользователя в строку кеша.

var o = Cache.Get ("A"); if (o! = null) {..}

Cache.Add ("A", o, ...);

И поэтому эти механизмы помогают вам временно хранить данные.

0 голосов
/ 09 января 2010

Вам необходимо сохранить свой класс данных где-нибудь, обычно в переменной сеанса, иначе он исчезнет, ​​как только страница будет отправлена ​​обратно пользователю. Или же вам нужно заново создать класс данных после публикации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...