Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как передать обьект в другую форму параметром / 9 сообщений из 9, страница 1 из 1
12.12.2011, 08:49:57
    #37570312
asp_111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
Что-то не могу найти как можно передавать сложные (не строковые) параметры в другую форму.
Скажем есть на форме кнопка, по которой я вызываю другую форму:

Код: c#
1.
2.
3.
4.
5.
protected void Button1_Click(object sender, EventArgs e)
        {
            Customer cust = new Customer("John", "Smith");
            Response.Redirect("WebForm1.aspx");
        }



и нужно передать туда параметр Customer, как это сделать не прибегая к Session?
...
Рейтинг: 0 / 0
12.12.2011, 09:15:56
    #37570328
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
1. Сериализовать объект и передать в url
2. Page.PreviousPage
3. Cookies
4. Profile
5. БД (отдельная табличка)
6. Application
7. Cache
...
Рейтинг: 0 / 0
12.12.2011, 10:08:14
    #37570389
Starlex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
Думаю, реальная практика - это через базу или сессию. Остальные сильно экзотические способы.
...
Рейтинг: 0 / 0
12.12.2011, 10:49:38
    #37570462
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
StarlexДумаю, реальная практика - это через базу или сессию. Остальные сильно экзотические способы.
Через сессию - зло. Не вижу никакой экзотики в сериализации класса в json и передачей его в url. Для красоты можно его base64 обернуть.
...
Рейтинг: 0 / 0
12.12.2011, 11:21:32
    #37570514
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
asp_111
Код: c#
1.
2.
3.
4.
5.
protected void Button1_Click(object sender, EventArgs e)
        {
            Customer cust = new Customer("John", "Smith");
            Response.Redirect("WebForm1.aspx");
        }

В данном конкретном случае я бы эту кнопку вообще заменил на что-то типа <a href="WebForm1.aspx?firstname=John&lastname=Smith">John Smith</a>
...
Рейтинг: 0 / 0
13.12.2011, 10:03:53
    #37572240
asp_111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
МСУStarlexДумаю, реальная практика - это через базу или сессию. Остальные сильно экзотические способы.
Через сессию - зло. Не вижу никакой экзотики в сериализации класса в json и передачей его в url. Для красоты можно его base64 обернуть.

там вроде есть какие-то жесткие ограничения на размер того, что можно передавать в строке. Если-же обьект сравнительно большой, то может не поместиться. Кроме того его еще и вручную сериализовать надо будет, у сессии сериализатор встроен.
А вот появился вопрос по-поводу использования кэша для этой цели: как у него обстоят дела если исползуется web farm, т.е. нагрузка распаллелена между серверами. У сессии на этой случай можно использовать StateServer mode или SQLServer mode, при передаче запроса другому серверу из фермы значение кэша все равно можно будет извлечь? Или оно потерятся как и при использовании InProc mode в сессии?
...
Рейтинг: 0 / 0
13.12.2011, 11:43:19
    #37572461
Starlex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
asp_111у сессии сериализатор встроен.


Нет там никакого сериализатора. Например, сделайте список значений List<int>, присвойте его переменной, поместите в сессию. Потом измените одно из значений в переменной. И посмотрите, что теперь в сессии.
...
Рейтинг: 0 / 0
13.12.2011, 12:10:52
    #37572530
Random_Goodman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
StarlexНет там никакого сериализатора. Например, сделайте список значений List<int>, присвойте его переменной, поместите в сессию. Потом измените одно из значений в переменной. И посмотрите, что теперь в сессии.
И чо?
Сериализация
...
Рейтинг: 0 / 0
13.12.2011, 12:52:55
    #37572649
Starlex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать обьект в другую форму параметром
Random_GoodmanStarlexНет там никакого сериализатора. Например, сделайте список значений List<int>, присвойте его переменной, поместите в сессию. Потом измените одно из значений в переменной. И посмотрите, что теперь в сессии.
И чо?
Сериализация

Вы наверное после того как объект из сессии присваиваете переменной, меняете в ней какие-то свойства, затем обратно пишите в сессию? Попробуйте не делать последнее действие, вы удивитесь :)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как передать обьект в другую форму параметром / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]