从属性重定向

时间:2011-01-19 17:57:26

标签: asp.net attributes

如何为重定向到另一个页面的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 :(得分:0)

属性不能自行重定向 - 它只是装饰你定义它的类/成员的元数据。

该元数据可以与反射一起使用以执行重定向,但是您需要将该代码放在asp.net管道中的某个位置,以便可以检查页面并进行重定向。

答案 1 :(得分:0)

我同意其他所有人使用属性重定向是一种奇怪的体验。

如果你真的想这样做,你应该查看HttpApplication.BeginRequest事件,你可能会编写一些代码来检查每个加载的页面类的请求,看看是否有你想要的属性,然后执行你的在那里重定向。

或者,您可以编写一个继承自System.Web.UI.Page的抽象类(您站点中的所有页面也需要继承它)并在OnLoad中进行某种检查,如果该类是用属性装饰。