This article has been localized into Spanish by the community.
Query String (datos por GET)
Una de las formas más comunes de tomar la entrada del usuario, en una aplicación web, es a través del query string. En tecnologías anteriores, como PHP y ASP Classic, se trataría directamente con el query string, pero como se mencionó anteriormente, ASP.NET MVC ha abstraído la mayoría del control de query string en parámetros para las acciones del Controlador. Sin embargo, en algunas situaciones, seguirá siendo relevante leer directamente desde el query string y, afortunadamente, para nosotros, sigue siendo muy fácil de hacer en ASP.NET MVC.
¿Qué es una cadena de consulta?
Las URLs están hechas de varias partes, como el protocolo,hostname, ruta y así. La cadena de consulta es la parte de la URL que viene después del carácter de signo de interrogación. Entonces, una URL cómo está:
https://www.google.com/search?q=test&oq=hello
Todo lo que está después del carácter ? Es considerado la cadena de consulta. En este caso, los parámetros: Uno llamado q y otro llamado oq ellos tienen los valores de "test" y "hello". Estos eran relevantes para la página mostrada por la URL - por ejemplo, el parámetro q es usado para decirle al servidor que está buscando el usuario. La cadena de consulta es usualmente agregada como un resultado del usuario haciendo clic en un link enviando un formulario. Esto le permite al mismo archivo en tu servidor manejar múltiples situaciones - esto puede variar la salida regresada basada en la entrada a través de la cadena de consulta.
Accesando la cadena de consulta
El acceso al query string en ASP.NET MVC es muy simple: solo usa la clase HttpContext, de la que se trata todo este capítulo. La información sobre el query string se encuentra mediante una de las siguientes propiedades: HttpContext.Request.QueryString y HttpContext.Request.Query. La diferencia es que el QueryString es básicamente la cadena de texto sin formato, mientras que la propiedad Query permite tener acceso fácilmente a las claves y sus valores. Usaremos la propiedad Query en los siguientes ejemplos, donde demostraré lo fácil que es trabajar con ellos:
public class HomeController : Controller
{
public IActionResult QueryTest()
{
string name = "John Doe";
if (!String.IsNullOrEmpty(HttpContext.Request.Query["name"]))
name = HttpContext.Request.Query["name"];
return Content("Name from query string: " + name);
}
}
La página ahora puede ser llamada con una URL cómo está, dejar el nombre del usuario:
/Home/QueryTest?name=Jenna Doe
Cómo puedes ver, simple revisó la existencia de un parámetro en la cadena de consulta con el nombre "name", y si existe, lo almaceno en la variable.
Resumen
Accesar a la cadena de consulta en tu proyecto ASP.NET MVC es sencillo gracias a la clase HttpContext.