c# - pasar - ¿Por qué Request.QueryString["ruta"] convierte todos los signos+en espacios?
request string asp net (1)
Cuando codifica correctamente la cadena de consulta, un espacio se convierte en +
y +
convierte en %2B
. El proceso de decodificación hace lo contrario, por lo que tu +
se convierte en un espacio.
El problema es que no codificó la cadena de consulta, y eso significa que se decodificó incorrectamente.
var requestImage = "Handler.ashx?path=" + encodeURIComponent(result);
Tengo un código de JavaScript como este:
function OnRequestComplete(result) {
// Download the file
//Tell browser to open file directly
alert(result);
var requestImage = "Handler.ashx?path=" + result;
document.location = requestImage;
}
y el código de Handler.ashx es así:
public void ProcessRequest(HttpContext context)
{
Context = context;
string filePath = context.Request.QueryString["path"];
filePath = context.Server.MapPath(filePath);
}
En filePath no tenemos ningún signo + (espacios en su lugar).
¿Cómo puedo resolver este problema?
¿Por qué Request.QueryString ["ruta"] convierte todos los signos + en espacios?