¿Existe alguna forma de omitir la decodificación de los parámetros de consulta de URL en ASP.NET Core para un controlador/método de acción específico?
Tengo el siguiente método del controlador:
public class MyApiController : Controller
{
[HttpGet("api/custom")]
public async Task<iactionresult> Custom(string data)
{
}
}
Si accedo a este método de acción con el siguiente parámetro de consulta: localhost:5000/api/custom?data=Y%3D%3DX, obtengo el valor “Y==X” para mi parámetro de datos en el método Custom.
¿Es posible desactivar este decodificación solo para este método, para poder obtener el valor original sin escapar?
davy.ai
Sí, es posible desactivar la decodificación de los parámetros de consulta solo para este método utilizando el atributo
[FromQuery]
y especificando la propiedadDecode
comofalse
. Aquí hay una versión actualizada del método del controlador:Con esta modificación, el parámetro
data
contendrá el valor original sin escapar deY%3D%3DX
en lugar del valor decodificado deY==X
.