Вопрос новичка
От: Eugene Sh Россия  
Дата: 23.03.05 11:18
Оценка:
Здравствуйте. Пишу первое приложение ASP.NET. И у меня возникли вопросы и непонятные места.

Приложение пишу простое. Есть одна форма (MainForm), на которой есть одно текстовое поле. Я хочу, чтобы при заполнении этого поля и нажатии на кнопку Submit, просто открывалась новая страница (result), на которой отображался текст, введённый в это поле.

Что я сделал.
1) Средствами VS.NET создал формы MainForm.aspx и result.aspx
2) Установил свойство "action" формы MainForm.aspx в значение "result.aspx"
3) На форму MainForm.aspx добавил текстовое поле (Toolbox -> Web Forms -> TextBox)
4) На форму MainForm.aspx добавил кнопку Submit (Toolbox -> HTML ->Submit Button).
5) Скомпилировал.

И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">.
Почему? Как делать правильно?

Заранее спасибо.
Re: Вопрос новичка
От: valmond Россия http://blogs.technet.com/valmond/
Дата: 23.03.05 11:40
Оценка: 5 (1)
ES>Приложение пишу простое. Есть одна форма (MainForm), на которой есть одно текстовое поле. Я хочу, чтобы при заполнении этого поля и нажатии на кнопку Submit, просто открывалась новая страница (result), на которой отображался текст, введённый в это поле.

ES>Что я сделал.

ES>1) Средствами VS.NET создал формы MainForm.aspx и result.aspx
ES>2) Установил свойство "action" формы MainForm.aspx в значение "result.aspx"
ES>3) На форму MainForm.aspx добавил текстовое поле (Toolbox -> Web Forms -> TextBox)
ES>4) На форму MainForm.aspx добавил кнопку Submit (Toolbox -> HTML ->Submit Button).
ES>5) Скомпилировал.

ES>И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">.

ES>Почему? Как делать правильно?


Если форма runat=server, то action всегда (я бы сказал, что по хорошему...может какими-то грязными хаками action и подменяется) будет тот же что и адрес стреницы.

Если задача чтоит так.
Есть текстовое поле и кнопка
надо при клике на кнопку отображать значение текстового поля и не отображать само поле.
То можно сделать так.
Добавляешь
кнопку
поле
lable

На событии Click у кнопки присваиваешь
lable.Text = поле.Text;
поле.Visible = false;

Но вообще лучше читать...а если был опыт работы с asp, perl, php и.д. то лучше на время забыть о нем.
Заметки — SharePoint & InfoPath
http://blogs.technet.com/valmond/
Re[2]: Вопрос новичка
От: Eugene Sh Россия  
Дата: 23.03.05 12:25
Оценка:
Здравствуйте, valmond, Вы писали:

V>Если форма runat=server, то action всегда (я бы сказал, что по хорошему...может какими-то грязными хаками action и подменяется) будет тот же что и адрес стреницы.


V>Есть текстовое поле и кнопка

V>надо при клике на кнопку отображать значение текстового поля и не отображать само поле.
V>То можно сделать так.
V>{...}

Спасибо за пояснения.
Но что делать в более сложных случаях? Например, пользователю предоставляется форма для регистрации. Он заполняет её, жмёт Submit. И надо в этом случае направить его на другую страницу. Описанный выше приём в этом случае применять, имхо, не стоит. Нужно определять, загружена ли форма повторно, и, если это так, делать редирект? Это ведь неудобно.
Re[3]: Вопрос новичка
От: valmond Россия http://blogs.technet.com/valmond/
Дата: 23.03.05 12:28
Оценка: 5 (1)
ES>Спасибо за пояснения.
ES>Но что делать в более сложных случаях? Например, пользователю предоставляется форма для регистрации. Он заполняет её, жмёт Submit. И надо в этом случае направить его на другую страницу. Описанный выше приём в этом случае применять, имхо, не стоит. Нужно определять, загружена ли форма повторно, и, если это так, делать редирект? Это ведь неудобно.

Как вариант делать
Response.Redirect("/new/url/");

Кстати определить, что форма загружена повторно от клика на кнопку можно через bool IsPostBack
Заметки — SharePoint & InfoPath
http://blogs.technet.com/valmond/
Re[4]: Вопрос новичка
От: Eugene Sh Россия  
Дата: 23.03.05 12:44
Оценка:
Здравствуйте, valmond, Вы писали:

V>Как вариант делать

V>Response.Redirect("/new/url/");
А форма, находящаяся по адресу "/new/url/" сможет достать из Request параметры, которые ввёл пользователь?

V>Кстати определить, что форма загружена повторно от клика на кнопку можно через bool IsPostBack

Спасибо.
Re[5]: Вопрос новичка
От: valmond Россия http://blogs.technet.com/valmond/
Дата: 23.03.05 12:50
Оценка:
Здравствуйте, Eugene Sh, Вы писали:

ES>Здравствуйте, valmond, Вы писали:


V>>Как вариант делать

V>>Response.Redirect("/new/url/");
ES>А форма, находящаяся по адресу "/new/url/" сможет достать из Request параметры, которые ввёл пользователь?

Не...не сможет (в штатной ситуации).
А зачем? Тут "/new/url/" можно сказать, что все Ок.
А саму регистрацию (проверки и т.д.) надо сделать на странице с формой, например в событии кнопки "click".
Зачем требуется передавать параметры на "/new/url/?

V>>Кстати определить, что форма загружена повторно от клика на кнопку можно через bool IsPostBack

ES>Спасибо.
Заметки — SharePoint & InfoPath
http://blogs.technet.com/valmond/
Re[6]: Вопрос новичка
От: Eugene Sh Россия  
Дата: 23.03.05 15:37
Оценка:
Здравствуйте, valmond, Вы писали:

V>А зачем? Тут "/new/url/" можно сказать, что все Ок.

V>А саму регистрацию (проверки и т.д.) надо сделать на странице с формой, например в событии кнопки "click".

Точно. Не подумал о таком варианте, как-то непривычно после php
RE: Вопрос новичка
От: Аноним  
Дата: 26.03.05 02:17
Оценка:
И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">.
Почему? Как делать правильно?

Заранее спасибо.


спецификa asp.net. тег form перерендивaется. прaвильнo нaвернoе oткрывaть нoвoе oкнo при пoмoщи javascript — window.openAnatoly Lubarsky: Weblog


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Вопрос новичка
От: Ximan  
Дата: 28.03.05 07:43
Оценка:
Здравствуйте, Eugene Sh, Вы писали:

ES>Здравствуйте. Пишу первое приложение ASP.NET. И у меня возникли вопросы и непонятные места.


ES>Приложение пишу простое. Есть одна форма (MainForm), на которой есть одно текстовое поле. Я хочу, чтобы при заполнении этого поля и нажатии на кнопку Submit, просто открывалась новая страница (result), на которой отображался текст, введённый в это поле.


ES>Что я сделал.

ES>1) Средствами VS.NET создал формы MainForm.aspx и result.aspx
ES>2) Установил свойство "action" формы MainForm.aspx в значение "result.aspx"
ES>3) На форму MainForm.aspx добавил текстовое поле (Toolbox -> Web Forms -> TextBox)
ES>4) На форму MainForm.aspx добавил кнопку Submit (Toolbox -> HTML ->Submit Button).
ES>5) Скомпилировал.

ES>И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">.

ES>Почему? Как делать правильно?

ES>Заранее спасибо.


Это одна из порблем программистов переходящих с ASP на ASP.NET
Если хотите работать таким образом с формами, то исользуте контролы не WEB FORMS а все контролы HTML.
и удалите в форме runat=server.

ТОгда все заработает таким образом как вы хотели.

Но таким образом я не советую программировать приложения ASP.NET

Используйте все лучшее, что вам дает .NET !!ООП + событийное программирование.
А ASP к некоторому сожалению придется чатично забыть.
Re[2]: Вопрос новичка
От: Eugene Sh Россия  
Дата: 28.03.05 08:23
Оценка:
Здравствуйте, Ximan, Вы писали:

X>Используйте все лучшее, что вам дает .NET !!ООП + событийное программирование.


Я так понял, что программирование на ASP.NET сродни программированию обычных Windows Forms. Про это читал и раньше, но теперь понял, что это значит
Re[3]: Вопрос новичка
От: valmond Россия http://blogs.technet.com/valmond/
Дата: 28.03.05 08:27
Оценка:
Здравствуйте, Eugene Sh, Вы писали:

ES>Здравствуйте, Ximan, Вы писали:


X>>Используйте все лучшее, что вам дает .NET !!ООП + событийное программирование.


ES>Я так понял, что программирование на ASP.NET сродни программированию обычных Windows Forms. Про это читал и раньше, но теперь понял, что это значит


Только в первом приближении.
Если посмотреть чуть глубже, то станет понятно, что это сильно разные вещи.
Заметки — SharePoint & InfoPath
http://blogs.technet.com/valmond/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.