read - request.querystring c#



Почему Request.QueryString["путь"] преобразует все знаки+в пробелы? (1)

Когда вы правильно кодируете строку запроса, пространство становится + и + становится %2B . Процесс декодирования делает обратное, поэтому ваш + превращается в пространство.

Проблема в том, что вы не кодировали строку запроса, а это значит, что она неправильно декодируется.

var requestImage = "Handler.ashx?path=" + encodeURIComponent(result);

У меня есть код javascript, например:

function OnRequestComplete(result) {
        // Download the file
        //Tell browser to open file directly
        alert(result);
        var requestImage = "Handler.ashx?path=" + result;
        document.location = requestImage;
}

и код Handler.ashx выглядит следующим образом:

public void ProcessRequest(HttpContext context)
{
    Context = context;
    string filePath = context.Request.QueryString["path"];
    filePath = context.Server.MapPath(filePath);
}   

В filePath у нас нет никаких знаков + (вместо пробелов).
Как я могу решить эту проблему?
Почему Request.QueryString ["путь"] преобразует все знаки + в пробелы?





sign