Я должен закодировать некоторый исходный код HTML в формат base64 перед отправкой формы, а затем декодировать его обратно в исходный код в коде позади. Вот код тестирования от MsgBox:
MsgBox(HttpContext.Current.Request.Form("encodedSourceCode"))
MsgBox(Convert.ToString(HttpContext.Current.Request.Form("encodedSourceCode").GetType()))
Dim b = Convert.FromBase64String(HttpContext.Current.Request.Form("encodedSourceCode"))
Dim html = System.Text.Encoding.UTF8.GetString(b)
MsgBox(html)
И я добавил alert()
для encodedSourceCode
в клиентском скрипте.
Результаты получаются:
Первый MsgBox: Пусто
Второй MsgBox: "System.String"
Last MsgBox: оригинальный исходный код HTML
А в диалоговом окне предупреждения JS отображается строка base64, которая состоит из набора цифр и алфавитов.
Короче говоря, все в порядке, кроме первого MsgBox, который должен быть строкой в кодировке base64, но оказывается пустым. Зачем? Это нормально?
На самом деле это не имеет большого значения, потому что даже конечный результат (после декодирования), кажется, не имеет проблем, но мне просто любопытно, почему промежуточный результат не отображается так, как это должно быть.