How Can we use multiple forms in single asp.net application?
Answer Posted / isha
ASP.NET pages can contain no more than one HTML form and
can post only to itself, but you can work around this
limitation to add extra input forms
How can I use multiple HTML forms in an ASP.NET
application? How can I build a page to make it contain a
small form in a corner for users to login or start a
search? These are frequently asked questions from those who
do serious ASP.NET development. The problem arises from the
fact that ASP.NET forces a single-form programming model.
In HTML, the form is the construct designed to gather some
input data and post it to the server for further
processing. The form is seen as a collection of <input>
tags such as textboxes, drop-down lists, and checkboxes,
whose contents are automatically collected and posted when
a submit button is pressed. Likewise, the same finalizing
process can be started via script. In HTML, you can have as
many forms as you like in each and every HTML page. This
structure has been maintained in Active Server Pages (ASP),
mostly because ASP is a sort of wrapper built around the
HTML page. In the end, with ASP you create the page
structure from an HTML basement with some opened windows of
dynamically generated markup.
ASP.NET is quite different and qualifies as a true runtime
environment that enforces its own programming rules to
generate the same kind of output—HTML markup. In doing so,
ASP.NET mandates that, at most, one form is supported, and
any submissions the web server can receive from a page
should target the same original URL. In short, each ASP.NET
page can contain no more than one HTML form and can post
only to itself.
There are many benefits to the ASP.NET programming model
out of this pattern, the most important of which is the
ability to handle postback events on top of a stateful
architecture. In ASP, how did you manage to maintain the
state of input elements across two successive requests for
the same page? Should I say it? I guess you were forcing
the action attribute of the HTML form to the same URL of
the current page and using some code blocks and the session
state to restore key attributes on input fields. At its
core, this is just what ASP.NET does, except that it uses
viewstate instead of session state and that it promotes the
model to rank of a “mandatory” rather than “optional”
feature.
In summary, to be able to use ASP.NET server controls for
capturing some user input, you have to use the ASP.NET
server form control. In doing so, you lose the power of
controlling the action attribute of the form and are
limited to, at most, one form per page.
Hence the initial question, how can you insert a second
form in an ASP.NET page?
If your goal is “changing” the form from time to time,
obeying different runtime conditions, then be aware that
the enforced rule states that only one form can be visible
at any time. So you can place as many as <form
runat=server> tags as needed in a page, as long as only one
of them is marked with visible=true. By acting on the
visible attribute, you can programmatically switch from one
form to the next.
If your goal is having a “child” form for login or search
purposes, the solution is even simpler: Stick to classic
HTML forms; that is, <form> tags devoid of the runat
attribute. ASP.NET doesn’t exercise any control on tags not
marked with the runat attribute and you’re just fine until
HTML supports multiple forms. What do you lose in the
change? The ability of using postbacks in the target page
of the login or search. Just use the ASP classic
programming model—the Request object—and you’re all set.
Is This Answer Correct ? | 10 Yes | 2 No |
Post New Answer View All Answers
What methods are fired during the page load? Init()
What is the equivalent of date() and time() in asp.net?
What is meant by web application?
What are the navigation ways between pages available in ASP.NET?
What are the security types in ASP/ASP.NET? Different Authentication modes?
What are the different types of events are occured when a client requests an ASP.NET page from IIS server?
What is base class of button control in .net?
Can viewstate be accessed in another page?
Explain how caching in asp.net 2.0 is different from caching in asp.net 1.1?
If you have an application with multiple security levels though secure login and my ASP.NET web appplication is spanned across three web-servers by using round-robbin load balancing. Explain which is the best approach to maintain login-in state for the users?
Define static member?
How do you handle server controls?
Explain transparent caching with aop?
what are configuration files?
Explain the difference between globalization and localization techniques