tags:

views:

28

answers:

3

Hello.

I have the following piece of code on C#, on an ASHX or Generic Handler file:

public override void ProcessRequest(HttpContext contexto)
{
    string destino = contexto.Request["destino"];

    string variables = "?";

    string valor = "";

    foreach (string nombre in contexto.Request.QueryString)
    {
        if (nombre == "destino")
        {
            continue;
        } // Fin del if.
        else
        {
            if (contexto.Request.QueryString[nombre] != "")
            {
                valor = contexto.Request.QueryString[nombre];

                variables += nombre + "=" + valor + "&";
            } // Fin del if.
        } // Fin del else.
    } // Fin del foreach.

    variables = variables.Substring(0, variables.Length - 1);

    if (destino != null && destino != "")
    {
        switch (destino)
        {
            case "coordenadasPorMunicipios":    contexto.Response.Redirect("./admon/coordenadasPorMunicipios/CoordenadasPorMunicipiosControl.ashx" + variables);
                                                break;
            case "departamentos":               contexto.Response.Redirect("./admon/departamentos/DepartamentosControl.ashx" + variables);
                                                break;
            case "municipios":                  contexto.Response.Redirect("./admon/municipios/MunicipiosControl.ashx" + variables);
                                                break;
            case "negocios":                    contexto.Response.Redirect("./admon/negocios/NegociosControl.ashx" + variables);
                                                break;
            case "paises":                      contexto.Response.Redirect("./admon/paises/PaisesControl.ashx" + variables);
                                                break;
            case "sectoresIndustria":           contexto.Response.Redirect("./admon/sectoresIndustria/SectoresIndustriaControl.ashx" + variables);
                                                break;
            case "sectoresIndustriaPorNegocio": contexto.Response.Redirect("./admon/sectoresIndustriaPorNegocio/SectoresIndustriaPorNegocioControl.ashx" + variables);
                                                break;
            case "tiposNegocioPorNegocio":      contexto.Response.Redirect("./admon/tiposNegocioPorNegocio/TiposNegocioPorNegocioControl.ashx" + variables);
                                                break;
            case "tiposNegocios":               contexto.Response.Redirect("./admon/tiposNegocios/TiposNegociosControl.ashx" + variables);
                                                break;
            case "usuarios":                    contexto.Response.Redirect("./admon/usuarios/UsuariosControl.ashx" + variables);
                                                break;
        } // Fin del switch.
    } // Fin del if.
} // Fin del método ProcessRequest.

It works fine for GET vars, I mean, the ones that are sent via URL, but I want to do this for the POST vars.

I tryied to do a for each over he HttpContext object but I get a message that said that HttpContext class didn't have an Enumerator inmpelementation.

Any idea of how can I do this for both GET and POST vars??

Thanks for the help!!

+1  A: 

Where Request.QueryString is for the GET, Request.Form is for the form post variables. If you want to enumerate both at the same time, you can use Request.Params

Gabriel McAdams
Dude thanks!!!!
Jean Paul
+1  A: 

Request.Form is what you are looking for, it's for POST variables

Onkelborg
Dude thanks!!!!
Jean Paul
+1  A: 

Request.Params gives you a collection of Form, QueryString, Cookie and Server Variables, which is possibly too much, so you'll probably want to limit yourself to iterating over just .Forms and .QueryString.

Zhaph - Ben Duguid
Thanks my friend!!
Jean Paul