ASHX C # для каждого цикла в POST-переменных - PullRequest
3 голосов
/ 22 октября 2010

У меня есть следующий фрагмент кода на C #, в файле ASHX или Generic Handler:

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.

Он отлично работает для переменных GET, я имею в виду те, которые отправляются через URL, но яЯ хочу сделать это для POST-переменных.

Я попытался сделать для каждого объекта HttpContext, но я получаю сообщение о том, что класс HttpContext не имеет функции Enumerator.

Любая идея о том, как я могу сделать это для GET и POST VARS ??

Спасибо за помощь !!

Ответы [ 3 ]

2 голосов
/ 22 октября 2010

Request.Form это то, что вы ищете, это для переменных POST

2 голосов
/ 22 октября 2010

Где Request.QueryString для GET, Request.Form для переменных формы сообщения.Если вы хотите перечислить оба одновременно, вы можете использовать Request.Params

0 голосов
/ 22 октября 2010

Request.Params предоставляет вам набор переменных Form, QueryString, Cookie и Server, которые, возможно, слишком велики, так что вы, вероятно, захотите ограничиться повторением всего лишь .Forms и .QueryString.

...