Вы говорите "I have a situation where for some reason a Web page might refresh"
, вы имеете в виду, что пользователь может обновить страницу, или это какой-то другой скрипт, который обновляет страницу? Если дело обстоит именно так, вам, вероятно, следует попытаться устранить проблему, которая вызывает обновление, а не пытаться сохранить данные формы. Если это первое, JavaScript, вероятно, будет решением для вас.
Вы можете прослушивать каждое событие keyup на любом из элементов формы. Когда запускается событие keyup, вы сериализуете данные формы и записываете их в файл cookie (или в хранилище, в зависимости от того, какие браузеры вам необходимо поддерживать), чтобы сохранить самые свежие данные. Если страница перезагружается или пользователь покидает страницу и возвращается, cookie может быть десериализован в готовом документе, и вы можете повторно заполнить форму данными из cookie. Когда вы публикуете форму, вы также должны удалить куки, чтобы убедиться, что форма не будет заполнена при следующей загрузке страницы пользователем.
Обновление
Вот хорошее сообщение в блоге о том, как использовать GSerializer для сериализации десериализации с помощью JavaScript.