2010-06-07 2 views
2

У меня есть приложение ASP.NET. На некоторых страницах для вызова этой страницы требуется конкретная строка запроса, поэтому данные могут обрабатываться.Где находится наиболее подходящее место для проверки «Требуется перенаправление, иначе перенаправление»?

Где находится наиболее подходящее место для проверки того, включена ли требуемая строка запроса в URL-адрес, иначе перенаправление в другое место?

Я использовал только одну главную страницу.

Мысли и предложения будут оценены.

Спасибо.

ответ

5

Я хотел бы проверить функцию Page_Load или улучшить функцию Page_Init на каждой странице, для которой требуется элемент строки запроса.

Link to ASP.NET page execution lifecycle.

protected override void Page_Init (object sender, EventArgs e) 
{ 
    if(Request.QueryString["key1"] == "" || Request.QueryString["key1"] == null) 
    { 
     Response.Redirect("YOUR_PAGE_HERE"); 
    } 
} 
0

Чем скорее, тем лучше - зачем тратить больше времени на страницу, чем вам нужно, если вы действительно хотите просто перенаправить/перевести в другое место?

1

Проверьте, есть ли строка запроса на странице, которая ее использует. Вы хотите сохранить связанный код вместе, где это возможно.

0

Я делаю это в обработчике Page_Load, хотя, вероятно, это должно быть в Page_Init().

Код главной страницы не выполняется до тех пор, пока после Page_Init(), я думаю.

0

Вы можете создать пользовательский атрибут, который вы размещаете на определения страницы для любой страницы, которая требует строки запроса. Затем вы можете проверить: a) наличие этого атрибута на обработчике (Страница); и b) непустую строку запроса, если атрибут найден. Раньше я делал подобные пользовательские атрибуты. Проверка может идти в коде Global.asax.cs, но она должна быть достаточно поздней, чтобы обработчик (производный от страницы для стандартных веб-форм .aspx-страниц) был идентифицирован во время выполнения asp.net.

Это не даст вам повторить один и тот же код на любой странице, на которой есть требование.

Смежные вопросы