Вы можете поймать событие клика на вкладке и сделать форму сообщения через AJAX.Однако, это действительно только решает часть вашей проблемы.На стороне сервера вам нужно каким-то образом сохранить частичные данные формы, скорее всего, через TempData
.
Однако форма на основе вкладок обычно лучше обрабатывать полностью на стороне клиента, пока выготов предоставить все данные.Используйте проверку на стороне клиента, чтобы убедиться, что каждый раздел завершен и действителен, прежде чем позволить пользователю перейти к следующей вкладке.Вы также можете использовать localStorage
для сохранения каждого шага по мере продвижения пользователя.Это позволит им даже уйти и вернуться позже, чтобы продолжить заполнение формы.Просто не забудьте очистить localStorage
при окончательной отправке, чтобы данные не сохранялись вечно.
Вам по-прежнему нужна проверка на стороне сервера, поскольку проверка на стороне клиента может быть неполной или даже подделанной.Это также означает, что пользователь может быть отправлен обратно в форму после публикации.Вы можете автоматически перейти на вкладку с ошибками, например, при загрузке страницы:
var tab = $('.field-validation-invalid').eq(0).closest('.tab-pane').attr('id');
$('#' + tab).tab('show');