Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 111867
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T02:27:17+00:00 2026-05-11T02:27:17+00:00

I’m trying to build a very, very simple micro-webapp which I suspect will be

  • 0

I’m trying to build a very, very simple ‘micro-webapp’ which I suspect will be of interest to a few Stack Overflow’rs if I ever get it done. I’m hosting it on my C# in Depth site, which is vanilla ASP.NET 3.5 (i.e. not MVC).

The flow is very simple:

  • If a user enters the app with a URL which doesn’t specify all the parameters (or if any of them are invalid) I want to just display the user input controls. (There are only two.)
  • If a user enters the app with a URL which does have all the required parameters, I want to display the results and the input controls (so they can change the parameters)

Here are my self-imposed requirements (mixture of design and implementation):

  • I want the submission to use GET rather than POST, mostly so users can bookmark the page easily.
  • I don’t want the URL to end up looking silly after submission, with extraneous bits and pieces on it. Just the main URL and the real parameters please.
  • Ideally I’d like to avoid requiring JavaScript at all. There’s no good reason for it in this app.
  • I want to be able to access the controls during render time and set values etc. In particular, I want to be able to set the default values of the controls to the parameter values passed in, if ASP.NET can’t do this automatically for me (within the other restrictions).
  • I’m happy to do all the parameter validation myself, and I don’t need much in the way of server side events. It’s really simple to set everything on page load instead of attaching events to buttons etc.

Most of this is okay, but I haven’t found any way of completely removing the viewstate and keeping the rest of the useful functionality. Using the post from this blog post I’ve managed to avoid getting any actual value for the viewstate – but it still ends up as a parameter on the URL, which looks really ugly.

If I make it a plain HTML form instead of an ASP.NET form (i.e. take out runat='server') then I don’t get any magic viewstate – but then I can’t access the controls programmatically.

I could do all of this by ignoring most of ASP.NET and building up an XML document with LINQ to XML, and implementing IHttpHandler. That feels a bit low level though.

I realise that my problems could be solved by either relaxing my constraints (e.g. using POST and not caring about the surplus parameter) or by using ASP.NET MVC, but are my requirements really unreasonable?

Maybe ASP.NET just doesn’t scale down to this sort of app? There’s a very likely alternative though: I’m just being stupid, and there’s a perfectly simple way of doing it that I just haven’t found.

Any thoughts, anyone? (Cue comments of how the mighty are fallen, etc. That’s fine – I hope I’ve never claimed to be an ASP.NET expert, as the truth is quite the opposite…)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T02:27:17+00:00Added an answer on May 11, 2026 at 2:27 am

    This solution will give you programmatic access to the controls in their entirety including all attributes on the controls. Also, only the text box values will appear in the URL upon submission so your GET request URL will be more ‘meaningful’

    <%@ Page Language='C#' AutoEventWireup='true' CodeBehind='JonSkeetForm.aspx.cs' Inherits='JonSkeetForm' %> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>  <html xmlns='http://www.w3.org/1999/xhtml' > <head runat='server'>     <title>Jon Skeet's Form Page</title> </head> <body>     <form action='JonSkeetForm.aspx' method='get'>     <div>         <input type='text' ID='text1' runat='server' />         <input type='text' ID='text2' runat='server' />         <button type='submit'>Submit</button>         <asp:Repeater ID='Repeater1' runat='server'>             <ItemTemplate>                 <div>Some text</div>             </ItemTemplate>         </asp:Repeater>     </div>     </form> </body> </html> 

    Then in your code-behind you can do everything you need on PageLoad

    public partial class JonSkeetForm : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {         text1.Value = Request.QueryString[text1.ClientID];         text2.Value = Request.QueryString[text2.ClientID];     } } 

    If you don’t want a form that has runat='server', then you should use HTML controls. It’s easier to work with for your purposes. Just use regular HTML tags and put runat='server' and give them an ID. Then you can access them programmatically and code without a ViewState.

    The only downside is that you won’t have access to many of the ‘helpful’ ASP.NET server controls like GridViews. I included a Repeater in my example because I’m assuming that you want to have the fields on the same page as the results and (to my knowledge) a Repeater is the only DataBound control that will run without a runat='server' attribute in the Form tag.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 163k
  • Answers 163k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer added "!" at the end: User.find_by_name "a" => return nil… May 12, 2026 at 12:08 pm
  • Editorial Team
    Editorial Team added an answer That seems like an odd requirement to me, and one… May 12, 2026 at 12:08 pm
  • Editorial Team
    Editorial Team added an answer In my book a staging environment should be independent because… May 12, 2026 at 12:08 pm

Related Questions

I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
I am currently running into a problem where an element is coming back from
Seemingly simple, but I cannot find anything relevant on the web. What is the
Does anyone know how can I replace this 2 symbol below from the string
Configuring TinyMCE to allow for tags, based on a customer requirement. My config is

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.