Управление потоком в 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) для передачи управления этой странице.
Еще одним способом было бы включить весь контент страницы в панель (или панель) отдельно от того, что вы хотите, чтобы пользователь видел, а затем отключить видимость для панели, чтобы не показывать содержимое страницы - но учтите, что жизненный цикл страницы не будет стоп; просто содержимое на панели не будет видно.