Элементы формы в главных страницах ASP.NET и страницах содержимого

Попробуйте:

\ Q и \ E в качестве якорей

Поместите условие Or в соответствие с полным словом или регулярным выражением.

Ref Ссылка: Как совместить целое слово, которое включает специальные символы в регулярном выражении

24
задан Rob Cooper 7 October 2008 в 13:19
поделиться

8 ответов

Мысль я рассмотрел бы некоторые свои нерешенные вопросы и видел бы, могу ли я закрыть некоторых из них.

Этот был интересным. Я напрямую отказался полагать, что у Вас может только быть одна форма на странице ASP.NET. Это мне не имело никакого смысла. Я видел много веб-страниц, которые имеют больше чем одну форму на веб-странице, , почему страница ASP.NET должна несколько отличаться?

Так, это получило меня взгляды.

, Почему странице ASP.NET нужно элемент формы?

страницы ASP.NET пытаются эмулировать среду WinForms обеспеченным постоянством состояния через модель PostBack. Это обеспечивает элемент состояния к не сохраняющей состояния среде. Чтобы сделать это, время выполнения должно быть в состоянии иметь способность поддержать это состояние в каждой "форме". Это делает это путем регистрации назад данных на себя. Важно отметить что:

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

Итак, почему только один?

Это мне было вопросом о миллионе фунтов (я британец). Я понимаю, что для ASP.NET нужно это, особенно при использовании управления сервером ASP.NET, но , какого черта я не могу сделать свои собственные дополнительные формы?

Так, я думал, завинчивают его, просто делают Вашу собственную форму!

И я сделал. Я добавил стандартную трясиной, простую форму с отправлять действием "#". Это тогда выполняет POST к текущей странице с данными Формы для данной формы в запросе.

Предположение, что? Все это хорошо работало. Таким образом, я закончил с:

  • ведущая страница А, с HTML-формой в
  • Эта форма отправляет назад на текущую страницу (в основном страница с помощью ведущего устройства).
  • В коде Page_Load - позади для ведущего устройства, я тогда добавил код для проверки запроса для наблюдения, какие данные были переданы в запросе. Если это содержит данные (скажите скрытое поле), тогда я знаю, что сообщение было получено от Формы на основной странице, в противном случае тогда это - большая часть liekly PostBack от содержания и может быть проигнорировано.
  • я тогда окружил Теги content <form runat="server" id="aspNetForm"...> </form> теги. Это означало, что все страницы содержания автоматически имели форму для работы с.

Это предоставило мне относительно простое, чистое решение моей проблемы. Моя форма входа в систему хорошо работает в тандеме со всеми созданными формами содержания, некоторые из которых являются сложными формами, другие используют большое управление сервером и многие PostBacks и так далее.

я надеюсь, что это помогает другим.

19
ответ дан Rob Cooper 7 October 2008 в 13:19
поделиться

сам тег form находится в MasterPage, как таковом, можно кодировать любое управление сервером asp.net на основную страницу, которой Вы желаете. И можно описать логику обработки для того управления сервером на коде основной страницы позади файла.

Так, в Вашем примере, Вы можете иметь управление входом в систему на верхнем правом углу основной страницы, и затем иметь логику аутентификации в кодовой странице для ОСНОВНОЙ СТРАНИЦЫ, не Вашей страницы содержания.

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

5
ответ дан Stephen Wrighton 7 October 2008 в 13:19
поделиться

Все остальные уже упомянули, что у Вас может только быть единственный элемент формы на данной странице ASP.NET, и что это содержалось бы в основной странице. Пока неплохо. Но я не думаю, что это помогает Вам добраться полностью, где Вы хотите быть...

На Ваших основных страницах, Вы имеете (я принимаю!) определил asp:ContentPlaceHolder средства управления. Ваши страницы, которые используют ведущее устройство тогда, имеют соответствующий asp:Content теги. Все Ваше содержание страницы должно войти в это соответствие asp:Content теги.

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

при необходимости в странице для взаимодействия с основной страницей, можно получить доступ к нему через Page.Master свойство. Для взаимодействия с любым публично видимым кодом (методы, свойства, и т.д.) от основной страницы, Вы бросили это свойство к корректному типу и получаете доступ к публично видимому коду оттуда.

, Который должен получить Вас, где необходимо быть в этом сценарии. (Это работало на меня на нескольких сайтах!)

4
ответ дан John Rudy 7 October 2008 в 13:19
поделиться

Ограбьте,

Интересное решение. Я не вижу проблемы с тем, что Вы делаете. Проблема, с которой некоторые могут встретиться однако, то, если они пытаются сделать это с 2 формами сервера. Нет никакого правила в ASP.NET, что у Вас не может быть больше чем 1 HTML-формы на странице, просто что у Вас не может быть больше чем одного "runat ='server'" форма на странице. Очевидно, Вы нашли довольно простой способ удовлетворить Ваши потребности.

я нашел, что по большей части контакт с единственной формой не является проблемой, потому что платформа ASP.NET в основном разделяет все для нас с именованными контейнерами. Но в Вашем первом сообщении комментируют, что Вы совершаете нападки на важном факторе, который отсутствовал все же очень важный для сущности исходного вопроса: поведение клавиши Enter. Это всегда бросает разводной ключ в работы.

, Если необходимо было использовать стандарт "все затрагивание" форма сервера, разве Вы не могли бы получить правильное действие с помощью измененного события текста текстового поля? Конечно, если бы пользователь изменил оба значения, прежде чем удар введет в любого, который Вы получили бы странное поведение. И я думаю, что базовая проблема с клавишей Enter состоит в том, что, как только Вы имеете, больше чем один отправляет вход на HTML-форме, удар ВХОДЯТ в текстовое поле, ничего не делает. Только то, когда существует единственный ВХОДНОЙ элемент, делает причину клавиши Enter один, чтобы быть "нажатым".

4
ответ дан Peter 7 October 2008 в 13:19
поделиться

У Вас может только быть одна форма на странице ASP.NET. Один способ обработать это состоит в том, чтобы поместить обработчик событий на кнопку входа в систему на основной странице. Обработчик проверит пользователя и перенаправит к той же странице на успехе (для корректного выполнения обработчика Page_Load, который выполняется перед обработчиками событий).

2
ответ дан Dan Goldstein 7 October 2008 в 13:19
поделиться

Я решил "нажатие на клавишу Return в причинах подчиненной формы входа в систему основная форма для представления" проблемы в моем текущем проекте путем встраивания iframe в основную страницу. iframe указал на login.aspx страницу, которая аутентифицировала пользователя.

<iframe id="login" src="login.aspx" frameborder="0" enableviewstate="false" scrolling="no" runat="server"></iframe>

(формируют некоторую причину, мне было нужно закрытие,/iframe отмечают запутанный в других отношениях режим конструктора)

0
ответ дан Steve Davies 7 October 2008 в 13:19
поделиться

нет, у Вас может только быть одна форма asp.net на страницу. Это было правилом с тех пор 1.0

, Они должны оба совместно использовать ту же форму

-3
ответ дан WebDude 7 October 2008 в 13:19
поделиться

Вы можете иметь более 1 формы. (только только 1 видимая одновременно) Кодовая линия 1 = форма 1 видимая / форма 2 скрытая. Кодовая линия 2 = форма 2 видима / форма 1 скрыта = решена (это отлично подходит и для статических контактных форм

-2
ответ дан 28 November 2019 в 23:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: