Q1 - Если символ «C» сохранен в viewstate, то непосредственно перед визуализацией страницы Asp.Net сериализует «C» (вместе с другими данными) в строку Base64. При обратной передаче я выдаю следующий код:
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = "ABCDEF";
if (IsPostBack)
{
string viewStateString=Request["__VIEWSTATE"];
byte[] stringBytes = Convert.FromBase64String(viewStateString);
for (int i = 0; i < stringBytes.Length; i++)
{
if(stringBytes[i] == 67)
Label1.Text = ”deserialization successful”;
}
}
}
, тогда FromBase64String () должен преобразовать сериализованные данные обратно в их исходный формат. Таким образом, одно из полей «stringBytes» должно содержать десятичное значение 67 (которое представляет собой символ ASCII C). Но, похоже, это не так. Есть идеи, что я делаю не так?
Q2 - Поскольку String представляет набор символов Unicode, я предполагаю, что в приведенном выше примере, когда «ABCDEF» десериализуется из состояния просмотра, каждый символ в строке «ABCDEF» представлен двумя элементами массива «stringBytes»?
прощай
EDIT:
Я должен извиниться за то, что не упомянул, что я установил для enableViewStateMac значение false в теге Page, но он все равно не работал