2010-02-23 2 views
3

Я понимаю, что ASP.NET предназначен только для support a single form. То, что я смущен, - это то, что является подходящим методом для кодирования нескольких «форм» на странице .NET (у меня есть форма входа в начало страницы, через Site.Master и другие формы появятся на любой странице) , Должен ли я отвечать по-другому? На самом деле это не имеет большого смысла. Я был бы признателен, если бы кто-нибудь мог прояснить ситуацию. Благодарю.Несколько форм в ASP.NET

P.S. В настоящее время я разрабатываю .NET 2.0, хотя планирую скоро перейти на .NET 3.5.

ответ

5

Почти все веб-формы ASP.NET отправляются обратно на ту же страницу. Если вы не работаете над каким-то странным outlier (который ваш вопрос не указывает), вы просто используете один тег формы вокруг всего документа и используете привязки событий к вашим элементам управления для обработки различных экземпляров.

Например, у вас могут быть три кнопки, которые действуют как кнопки отправки, по одному для каждой «формы», но все внутри этого же тега form, и каждый из них называет свое соответствующее событие. Это поведение стандартно и обрабатывается ASP.NET для вас; все, что вам нужно сделать, это написать обработчики событий и подключить их.

+0

Хорошо. Мне было интересно, будет ли это работать. Является ли это подходящим решением (спрашивая остальную часть SO)? Есть ли недостатки в этом? – JasCav

+0

Это предполагаемое использование ASP.NET. Если вы хотите, чтобы ваша кнопка «отправила» на другую страницу, вы можете передать управление страницей путем перенаправления с использованием кода на стороне сервера. –

+0

Хорошо. Благодаря! Мне кажется немного странным, что я просто поместил большую «форму» в файл Site.Master (я должен с тех пор, как он ссылается на конкретный элемент управления, который требует формы). Как бы то ни было, мой «программирующий я» ошибается. Но я новичок в веб-программировании, поэтому мне может не хватать чего-то очень тонкого (или очевидного ... ха-ха). Спасибо за вашу помощь. – JasCav

0

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

+0

Почему бы не использовать элементы управления входами, которые являются частью .net 2.0? –

1

Я не уверен, что вы подразумеваете под формой входа в систему. Вы делаете какой-то специальный материал ajax?

Вы должны делить любую логическую «форму», как вы ее называете, в свой собственный пользовательский контроль.

http://www.asp101.com/lessons/usercontrols.asp

При работе с ASPX страниц, думать о виде на странице так же, как вы думаете тега тела.

+0

Нет, ничего особенного не делать AJAX-мудрый. И мой логин «материал» - это отдельный пользовательский элемент управления. Но он по-прежнему требует формы и когда я вставлял элемент управления в любой из моих документов ASPX, и у меня была другая форма уже в документе ASPX, мой сайт потерпел бы крах. Вот что меня смутило. – JasCav

0

По умолчанию вы не можете, так работает вся технология webforms (MVC, вероятно, исправит это в новейших версиях).

Так что это действительно зависит от того, что вы хотите сделать «двумя формами». Например, нет проблем с регистрацией & на одной странице, так как каждая кнопка имеет свое собственное событие click и оттуда. Если вы хотите, чтобы вторая страница aspx обрабатывала один из них, вы могли собирать значения и передавать их через response.redirect или какое-либо другое хакерское решение.