Перенаправление с атрибута - PullRequest
0 голосов
/ 19 января 2011

Как создать атрибут для страницы ASP.NET, который перенаправляет на другую страницу?

[MyAttribute()]
public partial class Default : System.Web.UI.Page
{

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

    }
}

[AttributeUsage(AttributeTargets.All)]
public class MyAttribute: Attribute
{
    public MyAttribute()
    {
        if (// something)
        { 
            // I need to redirect to some page here 
        }

    }
}

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Я согласен со всеми остальными, что использование атрибутов для перенаправления - это странный опыт.

Если вы действительно хотите это сделать, вам нужно посмотреть на событие HttpApplication.BeginRequest, и вы, возможно, могли бы написать некоторый код, который проверялкаждый запрос загружаемого класса страницы, чтобы увидеть, есть ли атрибут, который вы хотите, и затем выполнить перенаправление там.

В качестве альтернативы, вы могли бы написать абстрактный класс, который наследуется от System.Web.UI.Page (все ваши страницы на вашем сайте тоже должны были бы это унаследовать) и поставить некоторую проверку в OnLoad, если класс украшен атрибутом.

0 голосов
/ 19 января 2011

Атрибут не может перенаправить сам по себе - это просто метаданные, которые украшают класс / член, которого вы определили, один.

Эти метаданные могут использоваться с отражением для выполнения перенаправления, но вам потребуетсяпоместить этот код где-то в конвейер asp.net, чтобы можно было проверить страницу и выполнить перенаправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...