Управление потоком в ASP.NET с помощью return; не отображать остальную часть страницы

Этот вопрос должен быть довольно основным. Я хочу контролировать поток страниц ASP.NET - если выполняется определенное условие, я хочу выписать сообщение об ошибке и прекратить рисование страницы. Однако я также хочу, чтобы ASP.NET выводил правильный HTML (т.е. не обрезал посередине). Прямо сейчас я делаю это:

   if (condition != what-i-want) {
     Label_Error.Text = "Sorry, you messed up";
     return;
   }

И проблема с этим фрагментом состоит в том, что ASP.NET рисует остальную часть определенной страницы, не обрезая после ошибки. Я действительно не хочу делать всю страницу Visible = False и затем отмените это, когда кто-то аутентифицирован.

Есть ли хороший способ сделать это? я пытался Response.End() но это не выводит чистый HTML (или что-то на самом деле, так как я проверяю в Page_Load). У меня был похожий опыт Response.Close(), и другие.

Благодарю.

1 ответ

Решение

Самый простой способ - создать другую страницу, которая будет сообщать пользователю о проблемах, а затем использовать server.transfer (или response.redirect) для передачи управления этой странице.

Еще одним способом было бы включить весь контент страницы в панель (или панель) отдельно от того, что вы хотите, чтобы пользователь видел, а затем отключить видимость для панели, чтобы не показывать содержимое страницы - но учтите, что жизненный цикл страницы не будет стоп; просто содержимое на панели не будет видно.

Другие вопросы по тегам