Скрытые поля ввода не помогут?
<%= Html.Hidden(...) %>
Обновление (сериализация объекта в base64):
var formatter = new BinaryFormatter();
var stream = new MemoryStream();
formatter.Serialize(stream, myObject); // myObject should be serializable.
string result = Convert.ToBase64String(stream.ToArray());
Когда вы хотите получить его обратно:
var formatter = new BinaryFormatter();
var stream = new MemoryStream(Convert.FromBase64String(hiddenFieldValue));
var myObject = (MyObjectType)formatter.Deserialize(stream);
Убедитесь, что вы проверяете данные, хранящиеся в поле, когда используете их, так как клиент может их изменить. ViewState
позаботится об этом автоматически.
Примечание: ASP.NET использует LosFormatter
вместо BinaryFormatter
для сериализации ViewState
, поскольку это более эффективная или сериализация на основе ASCII. Возможно, вы тоже захотите это рассмотреть.