У меня есть 5 страниц ASPX wizard.
Каждый из них содержит кнопку SaveAndExit, которая выполняет функцию C# в общем статическом классе. После сохранения код C# перенаправляет на другую страницу.
Есть ли способ запустить javascript: alert('Data Saved'); после сохранения и до загрузки новой страницы.





Вам нужно будет зарегистрировать сценарий запуска при обратной передаче, чтобы сгенерировать оповещение. Затем выполните перенаправление через javascript после предупреждения.
Вы не можете делать это именно так, как хотите.
Код C# (на стороне сервера) не может работать, пока страница не будет отправлена обратно и не выгружена из браузера. Таким образом, к тому времени, когда ваш серверный код будет запущен, страница даже не будет существовать с точки зрения браузера, и будет слишком поздно запускать ваш код javascript. Это верно даже в середине обратной публикации, и даже если результатом обратной публикации будет та же самая страница. Вот почему в определенных обстоятельствах страницы ASP.Net могут мерцать во время обратной публикации.
Таким образом, вы не можете принудительно выдать предупреждение javascript после сохранения данных, не выполняя этого с помощью какого-либо обратного вызова ajax - и это, безусловно, один из вариантов. Другой вариант - сделать так, чтобы страница, на которую вы выполняете перенаправление, при определенных обстоятельствах показывала какое-то сообщение «данные сохранены»; запускать его с помощью чего-то простого, например, переменной сеанса или значения скрытого ввода при загрузке, чтобы это не было очевидным для пользователя.
Но я думаю, что лучше всего вообще ничего не делать. Похоже, если сохранение не удастся, вы не перенаправите. Вы, наверное, даже покажете какую-то ошибку. Если ваш пользователь недостаточно уверен в вашем приложении, что он не доверяет ему, даже если нет сообщения об ошибке и он переходит к следующему шагу, у вас проблемы.
И ПОСЛЕ сохранения данных. Это действительно не вариант без добавления дополнительного просмотра страницы - выберите один или другой.
Это очень даже вариант - как я уже сказал, зарегистрируйте сценарий запуска в обратной передаче, это будет предупреждать пользователя. Только после этого предупреждения произойдет перенаправление. Это очень возможный и очень популярный вариант.
Это означает использование javascript для перенаправления, и я почти уверен, что он думал о перенаправлении на стороне сервера.
Он сказал: «Код C# перенаправляет», но код C# все еще может определять, какой должна быть цель перенаправления. Он не должен перенаправлять на сервер ... вы говорите о техническом решении, перерисовывая бизнес-цель.
Вик, если это не домашнее задание, я настоятельно рекомендую вам не делать этого.
Предупреждение JavaScript очень раздражает большинство пользователей и в данном случае кажется совершенно бесполезным, как объяснил Джоэл Кохорн.
Если вы настаиваете на отображении сообщения при его сохранении, подумайте о добавлении, возможно, переменной сеанса, а на перенаправленной странице покажите сообщение «Данные сохранены» вверху if, переменную сеанса exist, а затем удалите переменную сеанса.
Опять же, как сказал Джоэл Кохорн, вы обязательно должны показывать сообщение, если есть ошибка, но перенаправление должно быть всем «доказательством» того, что их данные были сохранены.
Он хочет предупредить пользователя ПЕРЕД перенаправлением на следующую страницу.