2015-01-31 5 views
0

У меня есть страница, которая имеет много компонентов, таких как:Как предотвратить показ элементов страницы при загрузке страницы

  1. текстовых поля.
  2. этикетки.
  3. изображений.
  4. Формы.

и все они зависят от параметра url. Таким образом, в загрузке страницы я убедился, что параметр существует, и я проверяю его значение в соответствии с моими бизнес-правилами.

Я хочу, чтобы этот url не существовал, чтобы показать сообщение об ошибке.

Я попытался это:

Response.Write("Please don't change anything in the URL"); 

Он работает хорошо, но моя проблема: является то, что другие элементы страницы показывают, как хорошо, я не нужно, чтобы показать другие элементы.

это возможно? или я должен перейти к каждому элементу и сделать свойство visibility как false?

+2

вы пробовали группируя свои элементы в контейнер, а затем скрытие/отключить их .. вместо отдельных элементов – sabkaraja

+0

Это довольно грубо, однако, если вы не хотите, чтобы показать что-нибудь за исключением это сообщение. Вызовите 'Response.End();' после вашего 'Response.Write ...' – Candide

+0

@Candide, пожалуйста, напишите ответ, чтобы принять его. –

ответ

1

В Page_Load или Page_Init вы можете проверить, выполнено ли какое-либо условие относительно строки запроса. Вызов Response.End(); остановит выполнение событий страницы. Так что в итоге:

protected void Page_Init (object sender, EventArgs e) 
{ 
    if(!IsQueryStringValid(Request.QueryString)) 
    { 
     Response.Write("Please don't change anything in the URL"); 
     Response.End(); 
     // OR 
     // Response.Redirect("~/QueryStringModifiedError.aspx"); 
    } 
} 
Смежные вопросы