<FORM ACTION="Your favorite URL here">

User avatar
Escaper
Уже с Приветом
Posts: 1488
Joined: 11 Feb 2001 10:01
Location: Atlanta, GA, USA

<FORM ACTION="Your favorite URL here">

Post by Escaper »

Кто-нибудь может объяснить, почему атрибут "ACTION" тега "FORM", определённый во всех стандартах HTML, игнорируется ASP.Net? Какой смысл было убирать эту столь удобную фичу?

Попутный вопрос. Как при таком положении дел передать информацию, введённую пользователем на одной web-форме, в другую web-форму, не конструируя вручную строку запроса и не создавая по свойству на каждый элемент управления на странице, в которое приходится писать на исходной странице, и которое приходится читать на странице, получающей эту информацию.

Спасибо.
Make no small plans, for they have no power to stir the blood. Daniel H.Burnham
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: <FORM ACTION="Your favorite URL here">

Post by katit »

Escaper wrote:Кто-нибудь может объяснить, почему атрибут "ACTION" тега "FORM", определённый во всех стандартах HTML, игнорируется ASP.Net? Какой смысл было убирать эту столь удобную фичу?


Потому что не подразумевается использование... Как вы представляете использование таких фич как viewstate когда программеры постят формы куда хотят. Короче это все легко обьяснимо.

Но не все так плохо. Достаточно убрать из <FORM> директиву runat=server и все будет работать. Вообще asp.net разрешает только одну такую форму на странице. И требует ее в определенных случаях.

Попутный вопрос. Как при таком положении дел передать информацию, введённую пользователем на одной web-форме, в другую web-форму, не конструируя вручную строку запроса и не создавая по свойству на каждый элемент управления на странице, в которое приходится писать на исходной странице, и которое приходится читать на странице, получающей эту информацию.


Тут уже вариантов куча. От сессии до cookies.
А вообще лучше таких вещей избегать по возможности
User avatar
Escaper
Уже с Приветом
Posts: 1488
Joined: 11 Feb 2001 10:01
Location: Atlanta, GA, USA

Re: <FORM ACTION="Your favorite URL here">

Post by Escaper »

Escaper wrote:Кто-нибудь может объяснить, почему атрибут "ACTION" тега "FORM", определённый во всех стандартах HTML, игнорируется ASP.Net? Какой смысл было убирать эту столь удобную фичу?
katit wrote:Потому что не подразумевается использование... Как вы представляете использование таких фич как viewstate когда программеры постят формы куда хотят. Короче это все легко обьяснимо.

Ну объясните, please, если легко. :) Я, наверное, чего-то не понимаю. Что плохого в том, чтобы постить, куда хочешь? Точнее даже не так. В чём вообще смысл веб-программирования как не в сборе данных на одной форме и передаче их на другую форму для обработки и отображения результатов (по крайней мере когда речь идёт о репортах и вообще приложениях, работающих по принципу "запрос-обработка-результат")?

katit wrote:Но не все так плохо. Достаточно убрать из <FORM> директиву runat=server и все будет работать.

Что по сути превратит ASP.Net в plain ASP. :) С таким же успехом можно посоветовать не пользоваться ASP.Net, а вернуться на старый добрый ASP. О чём и речь - раньше работало, теперь - нет.

Попутный вопрос. Как при таком положении дел передать информацию, введённую пользователем на одной web-форме, в другую web-форму, не конструируя вручную строку запроса и не создавая по свойству на каждый элемент управления на странице, в которое приходится писать на исходной странице, и которое приходится читать на странице, получающей эту информацию.
katit wrote:Тут уже вариантов куча. От сессии до cookies.
А вообще лучше таких вещей избегать по возможности

Как это "избегать"?! I don't get it. 90 процентов того, что я сейчас пишу - это сбор данных, их обработка и выдача результата. Как это делать "правильно"?
Make no small plans, for they have no power to stir the blood. Daniel H.Burnham
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

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

Приведите пример конкретной задачи где совсем уже невмоготу что надо постить в другую страницу.

Прелесть ASP.NET в том что можно обрабатывать события и писать человеческий код. А если постить в другие места то как и в ASP надо проверять данные и т.п. В чем смысл тогда ?

Я лично это использую только для интеграции с другиме веб страницами (не ASP.NET)
User avatar
Escaper
Уже с Приветом
Posts: 1488
Joined: 11 Feb 2001 10:01
Location: Atlanta, GA, USA

Post by Escaper »

Пример. Надо получить от пользователя некоторые критерии и на основе этих критериев вернуть строки из базы данных в виде таблицы. При этом сбор критериев должен осуществляться в одном окне Internet Explorer'а, а отображение результатов - в другом. Как это правильно сделать в ASP.Net?
Make no small plans, for they have no power to stir the blood. Daniel H.Burnham
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Escaper wrote: одном окне Internet Explorer'а, а отображение результатов - в другом.


Я никогда поп ап не делаю.
А в том-же окне легко.
User avatar
Escaper
Уже с Приветом
Posts: 1488
Joined: 11 Feb 2001 10:01
Location: Atlanta, GA, USA

Post by Escaper »

katit wrote:Я никогда поп ап не делаю.
А в том-же окне легко.

Ну какая разница?! Забудьте пор pop-up. Пусть всё будет в одном окне. Как сделать так, чтобы исходный код для сбора данных и для их отображения физически находился в разных исходных файлах? Это возможно? Это должно быть не просто возможно. Это должно допускаться по умолчанию, без каких-либо усложнений. Ибо это - одно из фундаментальных правил хорошего стиля программирования - группирование кода по признаку природы выполняемых им задач. Кроме того, я могу захотеть иметь несколько форм, собирающих данные, результат обработки которых должен выводится в одинаковом формате. Логично в этом случае сделать несколько форм, собирающих данные, и только одну - отображающую результат. (Это на случай, если аргумент о неправильности писания всего кода в одном файле покажется неубедительным).
Make no small plans, for they have no power to stir the blood. Daniel H.Burnham
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Escaper wrote:
katit wrote:Я никогда поп ап не делаю.
А в том-же окне легко.

Ну какая разница?! Забудьте пор pop-up.


Ну тогда в чем проблема вообще не понимаю. :pain1:
Есть такая вещь как user control
Вот пишется один для получения данных, другой для изображения.
Их можно на одной и той-же странице разместить. При поиске показать контрол выборки а при постбэке его спрятать и показать контрол данных.
User avatar
Escaper
Уже с Приветом
Posts: 1488
Joined: 11 Feb 2001 10:01
Location: Atlanta, GA, USA

Post by Escaper »

katit wrote:Есть такая вещь как user control
Вот пишется один для получения данных, другой для изображения.
Их можно на одной и той-же странице разместить. При поиске показать контрол выборки а при постбэке его спрятать и показать контрол данных.

Ok, значит, правильный стиль программирования в ASP.Net - разбивать весь код на user control'ы? (Вроде бы с тем, что код надо разбивать, Вы спорить не стали.)
Make no small plans, for they have no power to stir the blood. Daniel H.Burnham
Слiн
Уже с Приветом
Posts: 1407
Joined: 07 Jan 2003 19:51
Location: НорКа

Post by Слiн »

Escaper wrote: Как сделать так, чтобы исходный код для сбора данных и для их отображения физически находился в разных исходных файлах?


include?
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Escaper wrote:Ok, значит, правильный стиль программирования в ASP.Net - разбивать весь код на user control'ы? (Вроде бы с тем, что код надо разбивать, Вы спорить не стали.)


То что код надо разбивать я не спорил т.к. только так и надо все делать.
И естественно повторяющиеся блоки ПРЕЗЕНТАЦИИ надо помещать в user controls. А если что-то очень часто используемое то и в custom controls.

насколько я знаю (может не прав) такой вещи как "include" ASP.NET не имеет.
Просто в декларациях надо прописывать "using ThisNamespace" но это уже про код а не презентацию. Основной вопрос я пожалуй отнесу к проблеме обмена данными между user controls. А для этого есть properties которые вы можете обозначать.

В общем заморочки есть свои, но надо смотреть на asp.net как на программирование а не как написание скриптов и парсинг HTML как в asp.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Escaper wrote:Ну какая разница?! Забудьте пор pop-up. Пусть всё будет в одном окне. Как сделать так, чтобы исходный код для сбора данных и для их отображения физически находился в разных исходных файлах? Это возможно? Это должно быть не просто возможно. Это должно допускаться по умолчанию, без каких-либо усложнений. Ибо это - одно из фундаментальных правил хорошего стиля программирования - группирование кода по признаку природы выполняемых им задач.

А какие к тому препятствия? Шо, кто-то отменил классы, модули с функциями, те же контролы?
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Escaper wrote:Ok, значит, правильный стиль программирования в ASP.Net - разбивать весь код на user control'ы? (Вроде бы с тем, что код надо разбивать, Вы спорить не стали.)

Для визуальных елементов - да. Юзер и кастом контролы.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

katit wrote:насколько я знаю (может не прав) такой вещи как "include" ASP.NET не имеет.

Есть.
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

vovap wrote:
katit wrote:насколько я знаю (может не прав) такой вещи как "include" ASP.NET не имеет.

Есть.


А подробнее?

Это не подключение библиотек и user controlov в заголовках?
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

katit wrote:Это не подключение библиотек и user controlov в заголовках?

А что подробнее - обчный инклюд как в ASP:
<!--#include file ="somefilename"-->

http://www.w3schools.com/asp/asp_incfiles.asp
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

vovap wrote:
katit wrote:Это не подключение библиотек и user controlov в заголовках?

А что подробнее - обчный инклюд как в ASP:
<!--#include file ="somefilename"-->

http://www.w3schools.com/asp/asp_incfiles.asp


Короче нету такого (и очень хорошо)
http://groups.google.com/groups?hl=en&l ... e%2BSearch

(линк может побиться)
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Опс.. :oops:

Есть. Нашел. Но все работники MS пытаются отговаривать от использования. Наверное расценивается как GoTo в программировании...

Да и нет никакой нужды в этом. ascx и классы очень хорошо работают.
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Вообще то поменять можно из клиентского JavaScript используя DOM. Я делал, уже не припомню зачем
Проблема в том что результат POST может обработать только обработчик страницы который и сгенерил саму страницу, а по результату можно вызвать на сервере Redirect or Transfer
Никакой разрухи нет. (с) Проф. Преображенский.
User avatar
Escaper
Уже с Приветом
Posts: 1488
Joined: 11 Feb 2001 10:01
Location: Atlanta, GA, USA

Post by Escaper »

Спасибо всем за интересные мысли по поводу. Но всё же хотелось бы ещё раз уточнить "политически корректный" стиль программирования на ASP.Net. Допустим, необходимо создать маленькое веб-приложеньеце, которое сначала собирает от пользователя некоторые данные, а затем в том же окне выводит некие результаты обработки этих данных на сервере. Необходимым условием является то, чтобы исходный код был физически (по файлам) разбит на следующие части:

1) ASPX-код, отображающий элементы управления для сбора данных
2) Code-behind для 1)
3) C#-код для обработки собранной информации
4) ASPX-код, отображающий результаты обработки собранных данных
5) Code-behind для 4)

Каким образом правильно организовать подобную разбивку кода на части и передачу данных между разными частями кода?

Как вариант можно рассмотреть те же условия, но при наличии требования, чтобы результаты обработки собранных данных отображались в новом окне (это может быть нужно, например, для отображения результатов в другом фрейме; или просто для выполнения желания заказчика, которое, как известно, закон).
Make no small plans, for they have no power to stir the blood. Daniel H.Burnham

Return to “Вопросы и новости IT”