2013-07-23 4 views
1

Я хочу вставить на ту же страницу форму для входа и регистрационную форму. Я попытался сделать следующее:Несколько форм для получения работы

.. 
<body> 
<form runat="server"> 
.. 
    <div id="login"> 
     some inputs and validations 
     <asp:button .. /> 
    </div> 
.. 
    <div id="register"> 
     some inputs and validations 
     <asp:button .. /> 
    </div> 
.. 
</form> 
</body> 

Как вы понимаете, form тег оборачивает весь код внутри тела (концепция WebForms'). каждая «форма» (вход и регистрация) включает проверки (сторона клиента &). когда я нажимаю любую кнопку, конечно, он отправляет две «формы», но не до того, как элементы проверки подтвердят все поля (в двух формах).

Моя цель - отделить их абсолютно. Я думал о том, чтобы не обернуть весь код тегом form и включить два тега form для каждой формы, но, по-моему, он нарушает «правило» и концепцию WebForms. Кроме того, как я понял, я не могу включить две формы с runat=server. Что я могу сделать в этой ситуации?

ответ

1

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

Назовите ваш логин «форму» на странице и поместите свою регистрационную форму на страницу. Thats штраф они будут игнорировать друг друга, все, что вам нужно использовать, является ValidationGroup собственности. Задайте одну группу проверки для битов входа, установите другую для битов регистра. Также, если вы хотите убрать их немного дальше, вы можете разместить их в контейнерах <asp:Panel>, которые позволят вам установить параметр DefaultButton, поэтому, когда вы нажимаете кнопку ввода, он отправляет правильную «форму».

Когда я впервые начал работу с asp.net, я все думал о том, что делать, если мне нужно ... или ... но это не получается. Вы просто думаете о них как о двух объектах на одной поверхности.

Поскольку система webforms поддерживает состояние между обратными передачами, вы можете просто работать над ними, как с настольным приложением.

Сказав все это, похоже, что вы только начинаете, и если у вас есть выбор, перейдите к MVC вместо WebForms.

1

В основном вы ведете проверку. Добавить группу проверки для обоих элементов управления, чтобы быть проверенными и кнопками, как это:

<div id="login"> 
    <asp:TextBox ValidationGroup="Login" ... /> 
    <asp:Button ValidationGroup="Login" ... /> 
</div> 

и конечно, ValidationGroup необходимо определить для register формы тоже.