querystring query por pasar parametros net aspx asp c# asp.net request query-string sign

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?