В .NET (в частности, C #), как я могу остановить навигацию?
Ситуация: пользователь щелкнул ссылку и запустил событие _Click ().
Событие click вызывает метод save, который проверяет некоторую информацию. Если какая-либо информация не соответствует желаемому, мы хотим предотвратить возникновение остальной части события щелчка.
Встроенная проверка ASP.NET не будет работать в этом случае. Существует несколько различных способов заполнения форм (а форма создается из нескольких различных элементов управления, каждый из которых используется на нескольких страницах) в зависимости от исходного состояния данных. Например, если они нажимают эту форму в первый раз (и они никогда не добавляли какую-либо информацию, которую она содержит ранее), НИЧЕГО не требуется ... но если они заполняют что-либо, они должны заполнить (почти) все.
При такой условной логике в валидации легче просто наклеить (очистить) метки на странице и, при необходимости, заполнить их сообщениями валидации, чем использовать фактические валидаторы.
Наша проблема в том, что метод, который запускает Save (), затем перемещает пользователя на другую страницу.
Нет никакого возвращаемого значения, которое мы можем использовать, чтобы указать «остановить навигацию» ... так как я могу запустить метод, установить метки «ошибки», а затем предотвратить возврат вызова в стек (и посылку пользователя со страницы)?